打印

pcf8563中断输出不准确

[复制链接]
4145|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
colorful88|  楼主 | 2014-7-28 22:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 colorful88 于 2014-7-28 22:56 编辑

小弟,用pic做项目,需要pcf8563去唤醒单片机,I2C通讯正常,能读能写。
但是设置pcf8563倒计时功能出了点问题,INT引脚是用的单片机内部上拉,也能放出低电平唤醒单片机,只是INT引脚输出中断时间和我设置的不一样,不管怎么设置pcf8563的寄存器,放出中断间隔只有1s多的时间。
这是我设置寄存器的程序,括号内是地址、长度、写入数值
PCF8563_Write_Bytes(0x00,1,0x00);
PCF8563_Write_Bytes(0x01,1,0x01);
PCF8563_Write_Bytes(0x0e,1,0x81);
PCF8563_Write_Bytes(0x0F,1,0x40);
发出中断后清零TF,PCF8563_Write_Bytes(0x01,1,0x01);
但是我想加长间隔时间,PCF8563_Write_Bytes(0x0F,1,0x40);把0x40改成别的值,却没有什么变化。

相关帖子

沙发
ayb_ice| | 2014-7-29 07:03 | 只看该作者
又有怀疑芯片问题的人

使用特权

评论回复
板凳
排山倒海| | 2014-7-29 08:07 | 只看该作者
芯片也是人设计的啊,为什么不能怀疑?
特别是datasheet有错误是经常的事情,否则就不用出勘误文件了。

我用三星的单片机就出现驱动LCD电流不够显示不均匀,换中颖合泰测试显示是正常的。

使用特权

评论回复
地板
ayb_ice| | 2014-7-29 08:49 | 只看该作者
排山倒海 发表于 2014-7-29 08:07
芯片也是人设计的啊,为什么不能怀疑?
特别是datasheet有错误是经常的事情,否则就不用出勘误文件了。

是人设计的,但是是高人设计的

何况是NXP这样的公司,都出来N年了,还能发现新大陆?

使用特权

评论回复
5
colorful88|  楼主 | 2014-7-29 09:07 | 只看该作者
ayb_ice 发表于 2014-7-29 08:49
是人设计的,但是是高人设计的

何况是NXP这样的公司,都出来N年了,还能发现新大陆? ...

请不要根据别人的只言片语判断别人的态度,这件事我知道肯定是自己的设置问题,所以发上来请大家看看有什么我没注意的地方发生纰漏。
怎么直接转进到我怀疑芯片了?

使用特权

评论回复
6
ayb_ice| | 2014-7-29 09:13 | 只看该作者
你首先就给自己下结论了,还怎么讨论

“怎么设置都不对”

很明显99%的可能就是根本就没有设置对

使用特权

评论回复
7
colorful88|  楼主 | 2014-7-29 09:38 | 只看该作者
ayb_ice 发表于 2014-7-29 09:13
你首先就给自己下结论了,还怎么讨论

“怎么设置都不对”

都是做技术的,自然是有话说话。
不谈正题,说酸话总归不好。

使用特权

评论回复
8
ayb_ice| | 2014-7-29 09:47 | 只看该作者
找问题就要抱怀疑的态度,而不是。。。

你都不觉得有问题,怎么可能找到BUG呢,我说的大实话

使用特权

评论回复
9
colorful88|  楼主 | 2014-7-29 10:05 | 只看该作者
ayb_ice 发表于 2014-7-29 09:47
找问题就要抱怀疑的态度,而不是。。。

你都不觉得有问题,怎么可能找到BUG呢,我说的大实话 ...

我*,我要不抱着怀疑的态度我就打电话去nxp骂了。
问题我已经找到了,是我程序问题,芯片设置也没什么问题。
void PCF8563_Write_Bytes(unsigned char addr, unsigned char length, unsigned char *pbuf)
PCF8563_Write_Bytes(0x01,1,0x12);里的变量赋值给一个数组就能正确设置寄存器了,直接写入0x12会被改成0x08直接赋值AF为1,程序直接就下去了

使用特权

评论回复
10
ayb_ice| | 2014-7-29 10:09 | 只看该作者
colorful88 发表于 2014-7-29 10:05
我*,我要不抱着怀疑的态度我就打电话去nxp骂了。
问题我已经找到了,是我程序问题,芯片设置也没什么问 ...

还想骂NXP,我无语了

使用特权

评论回复
11
李冬发| | 2014-7-29 22:48 | 只看该作者
unsigned char *pbuf用0x12代替,你的C功底得用十全大补酒好好补补才行。

使用特权

评论回复
12
colorful88|  楼主 | 2014-7-30 10:02 | 只看该作者
李冬发 发表于 2014-7-29 22:48
unsigned char *pbuf用0x12代替,你的C功底得用十全大补酒好好补补才行。

额,技术糙了点。
中断间隔无法改变,还因为RB脚被一个外设器件拉低了,所以一直产生中断,所以机器睡眠后直接被唤醒,没等到pcf8563的中断。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

56

帖子

0

粉丝