原创 PCF2129调试中,下午犯得一个错误

2012-3-7 16:53 2720 12 14 分类: 工程师职场

/***************************************************************************
**函数名  : SetAlarm
**功    能    : RTC闹钟设置程序
**输入参数:ptime小时分钟闹钟配置
**返回值  :无
***************************************************************************/
void SetAlarm(UCHAR *ptime)
{
   UCHAR AlarmHour = 0x08,AlarmMinute = 0x10
  
   AlarmHour   =((*ptime/10)<<4)|(*ptime%10);

   ptime++;

   AlarmMinute =((*ptime/10)<<4)|(*ptime%10);


   SPI_RTC  = 0;
     
   SPISend(0x20);     /*设置时钟PCF2129初始化控制寄存器命令*/

   SPISend(0x00);    /*EXT_TEST,NULL,STOP,TSF1,POR_OVER,12_24,MI,SI; 0001001*/

   SPISend(0x02);    /*MSF, WDTF, TSF2,AF, ,NULL, TSIE, AIE, NULL*/

   SPISend(0x00);    /*PWRMIN7-5, BSTE, BF, BLF, BIE, BLIE*/

   SPI_RTC  = 1;

   DelayMs(10);

   SPI_RTC  = 0;

   DelayMs(10);

   SPISend(0x2A);       /*设置时钟PCF2129闹钟寄存器启动命令*/
        
   DelayMs(10);

   SPISend(0x01);          /*设置时钟PCF2129闹钟秒寄存器,固定值第1s*/

   DelayMs(10);

   SPISend(AlarmMinute);   /*设置时钟PCF2129闹钟分钟寄存器,初始时间10分*/

   DelayMs(10);

   SPISend(AlarmHour);   /*设置时钟PCF2129闹钟小时寄存器,初始时间8点*/

   DelayMs(10);

   SPI_RTC  = 1;
}

------------------------------------

AlarmHour = 0x08,AlarmMinute = 0x10

这俩参数 开始没有初始化,系统分配为FF,导致高位bit8为1,则PCF2129系统认为小时和分钟不使能,闹钟仅仅进行秒判断,则每分钟都会产生一个中断,开始还以为是系自带的分钟中断没配置好。。。

教训,初始化参数啊~~~~

文章评论2条评论)

登录后参与讨论

用户1561304 2013-5-9 18:43

求大神帮忙啊,急。。。 下面的程序有问题,请帮我看看,哪里有问题, /***********PCF2129的初始化************/ void Init_PCF2129() { NSS = 0; SPISend(0x20); /*设置时钟PCF2129初始化控制寄存器命令*/ delay(); SPISend(0x10); /*EXT_TEST,NULL,STOP,TSF1,POR_OVER,12_24,MI,SI; 0001001*/ delay(); SPISend(0x24); /*MSF, WDTF, TSF2,AF, ,NULL, TSIE, AIE, NULL*/ delay(); SPISend(0x00); /*PWRMIN7-5, BSTE, BF, BLF, BIE, BLIE*/ NSS = 1; delay(); } /********向PCF2129写一字节数据*********/ void SPISend(uchar date) { NSS = 0; SPIF = 0; // SPIF位清零 SPI0DAT = date; while(!SPIF);//等待发送完数据 SPIF = 0; _nop_(); NSS = 1; } /*******从PCF2129读一个字节的BCD码*********/ uchar read_byte() { SPIF = 0; NSS = 0; SPI0DAT = 0; //启动一次数据接收 while (!SPIF); // 等待数据收完毕 SPIF = 0; NSS = 1; _nop_(); _nop_(); _nop_(); _nop_(); return SPI0DAT; }

用户377235 2012-12-10 10:33

我用I2C接口,走时快了2分钟/天,已将晶振补偿0x19设为最小的一7PPmx,vcc=3、6V,电池=3V左右,不知何故?

用户1696769 2012-4-5 09:43

不好意思啊,由于节日期间的系统审核问题,所以文章没有第一时间显示出来,很抱歉!以后会多加注意的。
相关推荐阅读
huaifeng.student_670036284 2017-05-07 18:31
超低功耗器件布线经验一则
做了个比较复杂比较大的8层板自动测试电路,被测IC的上电静态电流一般在6-10uA; IC的其中一个管脚输出1K Clock,由于这个pin复用较多, 在距离 IC 2cm处拉一个测试点,然后继续走了...
huaifeng.student_670036284 2017-04-13 22:23
调试笔记一则
近期做了个板子,用了某国产大厂的DC-DC2412隔离电源。 上电做冒烟测试时候,次级电压只有2V,没有冒烟,静态电流看起来也比较正常,40mA左右; 检查次级,一级一级检查都很正常。。。。 睡了一觉...
huaifeng.student_670036284 2014-01-19 22:20
开始写点文字
忙忙碌碌又是一年,这几年都是从论坛索取的多,从今年开始,陆续认真写点技术文字,和大家交流,分享,先从这里做个开篇~...
huaifeng.student_670036284 2012-03-10 09:37
参加TI-M4技术研讨会苏州
       昨天,去苏州参加TI的M4的技术培训会,一天整体还是不错的,M3以前做过项目,M4一直忙的没时间具体关心详情,所以就参加了,手里有个项目正好要启动,选型中。      比较郁闷的...
huaifeng.student_670036284 2012-03-07 16:21
PCF2129调试中。。。
这两天在调试PCF2129,基本调试完毕,在调试闹钟中断,存在个问题,每分钟都会有个中断产生,明明吧每分钟中断的寄存器给设置关闭了。。。 继续调试,继续研读手册!...
我要评论
2
12
关闭 站长推荐上一条 /2 下一条