[讨论] 实时时钟初始化函数

羽翼之杨勇0102   2014-3-17 19:31 楼主
void Init_Rtc(void)
{                                             // BCD码日历格式输出                                                            
        
       RTCCTL01 = RTCBCD +  RTCHOLD + RTCMODE + RTCTEV_0 ;
       RTCPS0CTL =   RT0PSHOLD ;             //配置两个计数器分频                                 
       RTCPS1CTL  =  RT1PSHOLD ;
       RTCSEC =  0x54;                       //初始化秒         
       RTCMIN =  0X59 ;                      //初始化分钟
       RTCHOUR =0X21;                        //初始化小时
       RTCDOW = 0X02 ;                     
       //RTCTIM1 = 0X0421;   
       RTCDAY =  0x24;                       //日期初始化                  
       RTCMON =  0X11 ;                      //初始化月份
       RTCYEAR = 0x2005;                     //初始化年份                 
       RTCAMINHR = 0X2200 + BIT7;            //闹钟小时和分钟设置
       RTCADOWDAY = 0X2402;                  //闹钟星期和日期设置
       RTCCTL01 &= ~RTCHOLD;                 //打开RTC模块              
       RTCPS0CTL &= ~RT0PSHOLD;              //打开RTCPS0CTL
       RTCPS1CTL &= ~RT1PSHOLD;              //打开RTCPS1CTL
       RTCCTL0 |= RTCAIE + RTCRDYIE;         //打开安全访问使能 ,闹钟使能  
  
}

回复评论 (5)

第一条指令是想配置成BCD码日历格式输出;RTCBCD=1则是BCD码;RTCMODE=1则是日历模式;RTCTEV_0选择分钟跳变;RTCHOLD??这些控制位的值,在头文件里,查不到,如何确定他们是0还是1呢??请教前辈啦!!!
点赞  2014-3-17 19:39
RT0PSHOLD到底是0还是1呀!!如何判断咧??请教前辈!!能帮忙解答一下吗???谢谢!!!
点赞  2014-3-17 19:43
捕获.PNG

捕获1.PNG

头文件中有定义的啊,默认值是1
点赞  2014-3-17 21:08
引用: qinkaiabc 发表于 2014-3-17 21:08
头文件中有定义的啊,默认值是1

啊!看明白拉!这个寄存器是32位的,我犯习惯性错误啦!我以为是16位,看到那个32位的数据就勐拉!!谢谢!!我开始怎么看,都觉得别扭,费劲的狠!!
点赞  2014-3-18 08:22
不错,谢谢分享
点赞  2014-3-18 11:25
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复