OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 36383|回复: 95

升级PCF8563芯片驱动代码,欢迎各位大大们拍砖指导

  [复制链接]

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-5-16 23:08:37 | 显示全部楼层 |阅读模式
之前和大家分享了一下几个时钟芯片的驱动代码还有原理图什么的“发一个之前玩过的几个RTC芯片程序

最近因为一个项目原因,全部更新了PCF8563这个芯片的驱动代码,主要是直接在函数设置BCD格式和BIN格式的转换输出,全部操作利用结构体的思路,更加清晰明了。

底层IIC驱动用“发一个之前玩过的几个RTC芯片程序”这个帖子3楼附件,或者在文件开头位置的几个函数稍微修改一下即可,具体如下

[mw_shl_code=c,true]/** ***************************************************************************** * @Name : PCF8563某寄存器写入一个字节数据 * * @Brief : none * * @Input : REG_ADD:要操作寄存器地址 * dat: 要写入的数据 * * @Output : none * * @Return : none ***************************************************************************** **/ void PCF8563_Write_Byte(unsigned char REG_ADD, unsigned char dat) { IIC_Start(); if(!(IIC_Write_Byte(PCF8563_Write))) //发送写命令并检查应答位 { IIC_Write_Byte(REG_ADD); IIC_Write_Byte(dat); //发送数据 } IIC_Stop(); } /** ***************************************************************************** * @Name : PCF8563某寄存器读取一个字节数据 * * @Brief : none * * @Input : REG_ADD:要操作寄存器地址 * * @Output : none * * @Return : 读取得到的寄存器的值 ***************************************************************************** **/ unsigned char PCF8563_Read_Byte(unsigned char REG_ADD) { unsigned char ReData; IIC_Start(); if(!(IIC_Write_Byte(PCF8563_Write))) //发送写命令并检查应答位 { IIC_Write_Byte(REG_ADD); //确定要操作的寄存器 IIC_Start(); //重启总线 IIC_Write_Byte(PCF8563_Read); //发送读取命令 ReData = IIC_Read_Byte(); //读取数据 IIC_Ack(1); //发送非应答信号结束数据传送 } IIC_Stop(); return ReData; } /** ***************************************************************************** * @Name : PCF8563写入多组数据 * * @Brief : none * * @Input : REG_ADD:要操作寄存器起始地址 * num: 写入数据数量 * *WBuff: 写入数据缓存 * * @Output : none * * @Return : none ***************************************************************************** **/ void PCF8563_Write_nByte(unsigned char REG_ADD, unsigned char num, unsigned char *pBuff) { unsigned char i = 0; IIC_Start(); if(!(IIC_Write_Byte(PCF8563_Write))) //发送写命令并检查应答位 { IIC_Write_Byte(REG_ADD); //定位起始寄存器地址 for(i = 0;i < num;i++) { IIC_Write_Byte(*pBuff); //写入数据 pBuff++; } } IIC_Stop(); } /** ***************************************************************************** * @Name : PCF8563读取多组数据 * * @Brief : none * * @Input : REG_ADD:要操作寄存器起始地址 * num: 读取数据数量 * * @Output : *WBuff: 读取数据缓存 * * @Return : none ***************************************************************************** **/ void PCF8563_Read_nByte(unsigned char REG_ADD, unsigned char num, unsigned char *pBuff) { unsigned char i = 0; IIC_Start(); if(!(IIC_Write_Byte(PCF8563_Write))) //发送写命令并检查应答位 { IIC_Write_Byte(REG_ADD); //定位起始寄存器地址 IIC_Start(); //重启总线 IIC_Write_Byte(PCF8563_Read); //发送读取命令 for(i = 0;i < num;i++) { *pBuff = IIC_Read_Byte(); //读取数据 if(i == (num - 1)) IIC_Ack(1); //发送非应答信号 else IIC_Ack(0); //发送应答信号 pBuff++; } } IIC_Stop(); }[/mw_shl_code]

上面几个函数只要对应移植就可以了。

提供对外的函数有以下几个
[mw_shl_code=c,true]void PCF8563_Write_Byte (unsigned char REG_ADD, unsigned char dat); //PCF8563某寄存器写入一个字节数据 unsigned char PCF8563_Read_Byte (unsigned char REG_ADD); //PCF8563某寄存器读取一个字节数据 void PCF8563_Write_nByte (unsigned char REG_ADD, unsigned char num, unsigned char *pBuff); //PCF8563写入多组数据 void PCF8563_Read_nByte (unsigned char REG_ADD, unsigned char num, unsigned char *pBuff); //PCF8563读取多组数据 unsigned char PCF8563_Check (void); //PCF8563检测是否存在 void PCF8563_Start (void); //PCF8563启动 void PCF8563_Stop (void); //PCF8563停止 void PCF8563_SetMode (unsigned char Mode); //PCF8563设置运行模式 void PCF8563_SetPowerReset (unsigned char NewState); //PCF8563设置电源复位功能开启与关闭 void PCF8563_SetCLKOUT (_PCF8563_CLKOUT_Typedef* PCF_CLKOUTStruct); //PCF8563设置输出频率 void PCF8563_SetTimer (_PCF8563_Timer_Typedef* PCF_TimerStruct); //PCF8563设置定时器 void PCF8563_Set_Times (unsigned char PCF_Format,\ unsigned char PCF_Century,\ unsigned char Year, unsigned char Month, unsigned char Date, unsigned char Week,\ unsigned char Hour, unsigned char Minute); //设置时间,主要用于后台调用,或者初始化时间用 void PCF8563_SetRegister (unsigned char PCF_Format, unsigned char PCF_Century, _PCF8563_Register_Typedef* PCF_DataStruct); //PCF8563写入寄存器 void PCF8563_GetRegister (unsigned char PCF_Format, unsigned char *PCF_Century, _PCF8563_Register_Typedef* PCF_DataStruct); //PCF8563读取寄存器 void PCF8563_SetTime (unsigned char PCF_Format, _PCF8563_Time_Typedef* PCF_DataStruct); //PCF8563写入时间信息 void PCF8563_GetTime (unsigned char PCF_Format, _PCF8563_Time_Typedef* PCF_DataStruct); //PCF8563读取时间信息 void PCF8563_SetDate (unsigned char PCF_Format, unsigned char PCF_Century, _PCF8563_Date_Typedef* PCF_DataStruct); //PCF8563写入日期信息 void PCF8563_GetDate (unsigned char PCF_Format, unsigned char *PCF_Century, _PCF8563_Date_Typedef* PCF_DataStruct); //PCF8563读取日期信息 void PCF8563_SetAlarm (unsigned char PCF_Format, _PCF8563_Alarm_Typedef* PCF_DataStruct); //PCF8563写入闹铃信息 void PCF8563_GetAlarm (unsigned char PCF_Format, _PCF8563_Alarm_Typedef* PCF_DataStruct); //PCF8563读取闹铃信息[/mw_shl_code]

详细代码请看附件,同时欢迎各路高人指点一二

pcf8563.rar

9.12 KB, 下载次数: 4325

现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-16 23:09:56 | 显示全部楼层
cool,八度老师又出好作品了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-16 23:10:58 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
军哥,你这速度令人惊叹啊,我才刚发完你就来了,实在是感动啊
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-16 23:14:44 | 显示全部楼层
回复【3楼】八度空间:
---------------------------------
必须的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-5-16 23:20:59 | 显示全部楼层
我在UCOS视频教程里面提了你的帖子!哈哈~~
开往春天的手扶拖拉机
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-16 23:38:13 | 显示全部楼层
回复【5楼】zuozhongkai:
---------------------------------
好吧,还是你牛
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-5-20
在线时间
13 小时
发表于 2015-5-20 15:05:17 | 显示全部楼层
回复【6楼】八度空间:
---------------------------------
麻烦问下:我用的你的代码,IIC_Write_Byte()返回 结果都是没有应答信号,我用示波器看了还是没有SDA拉低,我用示波器看的输出信号都是对的,就是没有应答
回复 支持 反对

使用道具 举报

17

主题

466

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2164
金钱
2164
注册时间
2013-1-11
在线时间
510 小时
发表于 2015-5-20 16:46:59 | 显示全部楼层
谢谢,八度老师
知识是你最好的财富
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-20 19:57:06 | 显示全部楼层
回复【7楼】rush9838465:
---------------------------------
说明你的8563没有响应,看下硬件接对了没?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-20 19:57:16 | 显示全部楼层
回复【8楼】默默莱:
---------------------------------
谢谢!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

7

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2015-5-20
在线时间
13 小时
发表于 2015-5-22 10:32:28 | 显示全部楼层
回复【9楼】八度空间:
---------------------------------
谢谢 八度老师, 是晶振问题 晶振没有工作。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-22 21:15:11 | 显示全部楼层
回复【11楼】rush9838465:
---------------------------------
恭喜恭喜!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2015-5-25 16:37:28 | 显示全部楼层
八度大神,我对您的敬仰如滔滔江水,绵绵不绝!如黄河泛滥,一发不可收拾!如泰山压顶,。。。。。好了,言归正传,大神,这几次弄pcf8563,正好用到了您的程序,开始一直用 CF8563检测是否存在  这个函数,一直检测不到,害我检查了半天,又重新焊了块板,还是检测不到,我就试试其他函数,试了设置日期和读取日期,竟然可以耶,所以大神,你这个PCF8563检测存在的函数,是不是不行啊~~
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-25 22:21:46 | 显示全部楼层
回复【13楼】chenyh85:
---------------------------------
我的可以啊,每次都成功,你仿真看下到哪步就不行了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2015-5-26 09:23:44 | 显示全部楼层
回复【14楼】八度空间:
---------------------------------
这个没法仿真啊 ,反正就是调用 CF8563检测是否存在 函数,返回的一直是1,所以就是不存在咯,但是可以正常设置,读取时间日期。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-26 20:07:15 | 显示全部楼层
回复【15楼】chenyh85:
---------------------------------
这样啊,我测试一下看下,谢谢啊!!!
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2015-5-27 12:17:14 | 显示全部楼层
回复【16楼】八度空间:
---------------------------------
大神,您不用测试了,是我这边问题!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-27 20:19:59 | 显示全部楼层
回复【17楼】chenyh85:
---------------------------------
怎么说我每次测试都过,怎么你就不过呢,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2015-5-28 14:45:54 | 显示全部楼层
1,帮忙看看,这样调用,行吗?
IIC_GPIO_Init();

void CF8563_SetFunc(void)
{
_PCF8563_Date_Typedef  Date_InitStructure;
_PCF8563_Time_Typedef  Timer_InitStruct;


Date_InitStructure.RTC_Years    = 15;
Date_InitStructure.RTC_Months   = 05;
Date_InitStructure.RTC_Days     = 28;
Date_InitStructure.RTC_WeekDays = 4;

Timer_InitStruct.RTC_Hours=14;
Timer_InitStruct.RTC_Minutes=23;
Timer_InitStruct.RTC_Seconds=55;

PCF8563_SetMode(PCF_Mode_Normal);

PCF8563_Stop();

PCF8563_SetTime(PCF_Format_BIN, &Timer_InitStruct);
 CF8563_SetDate(PCF_Format_BIN, 0,&Date_InitStructure);
 
 CF8563_Start();


}

void CF8563_GetFunc( _PCF8563_Time_Typedef* CF_TimeStruct, _PCF8563_Date_Typedef* CF_DateStruct)
{

PCF8563_GetTime(PCF_Format_BIN, CF_TimeStruct);
 CF8563_GetDate(PCF_Format_BIN,0, CF_DateStruct);

}
呵呵。
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2015-5-29 21:02:43 | 显示全部楼层
回复【19楼】无名氏:
---------------------------------
你自己测试下,你定义那里少了个指针符号吧,还有如果不能通过,看看是不是和我一样,死机了,我遇到了,后来分配内存给变量,才解决。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-5-29 23:46:37 | 显示全部楼层
回复【20楼】chenyh85:
---------------------------------
哪里少了指针???我测试直接调用的,都通过的啊,你用的IIC驱动自己写的么?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2015-5-30 15:39:01 | 显示全部楼层
回复【20楼】chenyh85:
---------------------------------
可以了。。。
谢谢。。
呵呵。
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
350
金钱
350
注册时间
2015-3-10
在线时间
74 小时
发表于 2015-6-4 14:19:06 | 显示全部楼层
学习下,感谢分享!
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-7-16 14:38:16 | 显示全部楼层
崇拜啊,真要用,希望顺利,帖子收藏了两遍都!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-7-16 20:29:53 | 显示全部楼层
回复【24楼】wudenge@163.com:
---------------------------------
谢谢!欢迎坛友反馈,指导。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

57

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
452
金钱
452
注册时间
2013-5-23
在线时间
46 小时
发表于 2015-7-23 03:16:15 | 显示全部楼层
MARK...............
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-7-23 19:49:52 | 显示全部楼层
回复【26楼】yangzi6000:
---------------------------------
欢迎提出宝贵意见
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-7 15:55:20 | 显示全部楼层
回复【25楼】八度空间:
---------------------------------
遇到问题了,我就想在某年某月某日某时某分某秒产生中断,能实现吗?新手啊望解答!
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-7 17:21:38 | 显示全部楼层
发现晶振不启振啊,写时间,读时间均正常,就是时间不走?八度老师指点指点迷津啊,晶振是好的?start也加了,启动那一位显示为0,是运行的设置啊?
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-8-7 17:28:21 | 显示全部楼层
回复【28楼】wudenge@163.com:
---------------------------------
设置一下相关寄存器就可以了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-8-7 17:28:44 | 显示全部楼层
回复【29楼】wudenge@163.com:
---------------------------------
你的电路怎么画的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-9 10:32:47 | 显示全部楼层
这是我的电路!
12.png
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-8-9 10:43:49 | 显示全部楼层
回复【32楼】wudenge@163.com:
---------------------------------
你的int管脚怎么直接和单片机相连啊
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-9 10:45:25 | 显示全部楼层
回复【31楼】八度空间:
---------------------------------
 time.RTC_Hours=16;  //小时
 time.RTC_Minutes=20;  //分钟
 time.RTC_Seconds=48;  //秒钟
 CF8563_SetTime(PCF_Format_BCD,&time);
 CF8563_Start();
 delay_ms(3000);
 CF8563_GetTime(PCF_Format_BCD,&newtime);
程序就写这些有问题吗,是不是要把年月日,设置全了才能走。
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-9 11:53:13 | 显示全部楼层
回复【33楼】八度空间:
---------------------------------
我要用这个中断唤醒单片机的stop模式,并且有上拉电阻啊
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-9 11:54:15 | 显示全部楼层
回复【33楼】八度空间:
---------------------------------
这个也不影响我的晶振走不走啊?
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-8-9 12:41:27 | 显示全部楼层
回复【33楼】八度空间:
---------------------------------
我把int脚断开就启振了!不解,那我中断怎么连啊?非常感谢老师的指点,我再研究研究
回复 支持 反对

使用道具 举报

11

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2015-7-6
在线时间
5 小时
发表于 2015-8-21 12:15:47 | 显示全部楼层
感谢分享!!
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-8-21 16:55:13 | 显示全部楼层
回复【34楼】wudenge@163.com:
---------------------------------
不用全部都设置的,时间和日期可以分开来设置的,不影响


INT管脚和单片机管脚之间用三极管隔离试下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2015-12-27
在线时间
0 小时
发表于 2015-12-27 11:41:48 | 显示全部楼层
alarm  启用标志位在未启用时,没有在对应的标志清除,建议在设置前初始化以下标志:
PCF_DataStruct->RTC_AlarmDays     |= PCF_Alarm_DaysClose;  //日期闹铃
        PCF_DataStruct->RTC_AlarmHours    |= PCF_Alarm_HoursClose;  //小时闹铃
        PCF_DataStruct->RTC_AlarmMinutes  |= PCF_Alarm_MinutesClose;  //分钟闹铃
        PCF_DataStruct->RTC_AlarmWeekDays |= PCF_Alarm_WeekDaysClose;
        if (Alarm_State == 1 || Alarm_State == 2)  //打开闹铃
        {
          if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Days) {
            PCF_DataStruct->RTC_AlarmDays     &= PCF_Alarm_DaysOpen;  //日期闹铃
          }
          else {
          }
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Hours)     PCF_DataStruct->RTC_AlarmHours    &= PCF_Alarm_HoursOpen;  //小时闹铃
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Minutes)   PCF_DataStruct->RTC_AlarmMinutes  &= PCF_Alarm_MinutesOpen;  //分钟闹铃
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_WeekDays)  PCF_DataStruct->RTC_AlarmWeekDays &= PCF_Alarm_WeekDaysOpen;  //分钟闹铃
        }
        if (Alarm_State == 3)  //关闭
        {
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Days)      PCF_DataStruct->RTC_AlarmDays     |= PCF_Alarm_DaysClose;  //日期闹铃
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Hours)     PCF_DataStruct->RTC_AlarmHours    |= PCF_Alarm_HoursClose;  //小时闹铃
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_Minutes)   PCF_DataStruct->RTC_AlarmMinutes  |= PCF_Alarm_MinutesClose;  //分钟闹铃
                if (PCF_DataStruct->RTC_AlarmType & RTC_AlarmType_WeekDays)  PCF_DataStruct->RTC_AlarmWeekDays |= PCF_Alarm_WeekDaysClose;  //分钟闹铃
        }
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2015-12-27 20:58:07 | 显示全部楼层
godvmxi 发表于 2015-12-27 11:41
alarm  启用标志位在未启用时,没有在对应的标志清除,建议在设置前初始化以下标志:
PCF_DataStruct->RTC ...

这部分功能暂时没用到,没仔细研究
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-3-1
在线时间
3 小时
发表于 2016-3-1 11:23:37 | 显示全部楼层
楼主,想问下时间和日期设置完后,时间也能跑起来,但当时间到达23:59后,下一分钟应该是日期改为下一天,但获取的日期和周都是错的,难道日期没有自增功能吗??求解啊。。。。
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2013-6-2
在线时间
6 小时
发表于 2016-3-1 14:18:41 | 显示全部楼层
jonny 发表于 2016-3-1 11:23
楼主,想问下时间和日期设置完后,时间也能跑起来,但当时间到达23:59后,下一分钟应该是日期改为下一天, ...

配置初始化了寄存器,是会自动增加的
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2016-3-1
在线时间
3 小时
发表于 2016-3-1 16:35:06 | 显示全部楼层
本来是想找为什么时间自增到23:59后,日期怎么不变的问题,结果新问题出现了,现在连时间都不走了,但能够设置时间和日期,读取也正确,但sends(02H)寄存器读出一直为0,之前还会自动增加,什么情况,你们遇到过吗?????
回复 支持 反对

使用道具 举报

13

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
223
金钱
223
注册时间
2012-12-3
在线时间
19 小时
发表于 2016-3-3 10:41:50 | 显示全部楼层
设置闹钟时间到,INT脚输出低电平,这个功能,搞了好几天始终实现不了,定时器倒是可以产生中断,这是怎么回事?PCF8563_SetAlarm有问题吗?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2016-4-24
在线时间
3 小时
发表于 2016-4-24 09:14:02 | 显示全部楼层
多谢,已下载,正在研究。
不过坦率地说,某些编程习惯可能不符合C语言的惯例。
C语言中,常量定义一般全部用大写,变量或者函数则大小写混杂,这样一看就知道。
另外C语言在函数中传递缓冲区时,一般是排列顺序是先指针,然后大小。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-4-25 11:37:30 | 显示全部楼层
billypeng 发表于 2016-4-24 09:14
多谢,已下载,正在研究。
不过坦率地说,某些编程习惯可能不符合C语言的惯例。
C语言中,常量定义一般全 ...

个人习惯,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-6-11
在线时间
0 小时
发表于 2016-7-12 19:24:13 | 显示全部楼层
非常感谢
回复 支持 反对

使用道具 举报

12

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-6-15
在线时间
60 小时
发表于 2016-7-12 21:18:44 | 显示全部楼层
正点原子 发表于 2015-5-16 23:09
cool,八度老师又出好作品了。

原子哥这么个头像,不怕老板找你事么
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
 楼主| 发表于 2016-7-13 09:52:58 | 显示全部楼层
翼落天使 发表于 2016-7-12 21:18
原子哥这么个头像,不怕老板找你事么

原子哥就是老板,害怕找事?
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 04:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表