历史上的今天
今天是:2024年09月21日(星期六)
2020年09月21日 | MSP430单片机RTC实时时钟部分程序结构
2020-09-21 来源:elecfans
RTC-Real Time Clock是430单片机的实时时钟模块,可以配置成实时时钟模式(万年历)或者一般目的的32位计数器模式,其中实时时钟模式提供了年月日、时分秒,可以选择BCD码或者二进制格式,并且具有可编程的闹钟。RTC模块支持中断。相关寄存器请参阅430系列单片机user's guide(我用的是5438A)。
1.计数器模式
实时时钟控制器寄存器1 RTCMODE位被重置时,计数器模式被选择,通过软件设置可以得到一个32位的计数器。从时钟模式切换到计数器模式是通过重置计数值:RTCNT1、RTCNT2、RTCNT3、RTCNT4 和 预换算计数器:RT0PS、RT1PS。
计数器的增量计数器来自ACLK、SMCLK或者分频之后的ACLK、SMCLK。分频系数来自分频除法器RT0PS、RT1PS。RT0PS的输出可以和RT1PS的输出级联构成32位计数器的时钟源。4个独立的8位计数器级联成为32位的计数器。这能提供计数时钟的8位、16位、24位、32位溢出中断。RTCTEV位选择各自的触发,通过设置RTCTEVIE位,一个RTCTEV能够触发一个中断。计数器RTCNT1到RTCNT4都可以单独访问,并可能被写入数值。
2.日历模式
当RTCMODE被置位时,万年历模式被选中。值得一提的是,万年历模式有能够计算能否被4整除的闰年算法,这个算法范围是1901年到2099年。
2.1预分频
分频器自动将RT0PS和RT1PS配置成为实时时钟提供一秒间隔的时钟,RT0PS源于ACLK,一般来说ACLK为32768Hz,是为了实时时钟的运行。从日历模式切换到计数器模式时,会将年月日、时分秒全部被置位1,RT0PS和RT1PS也会被置位。当RTCBCD=1时,日历寄存器会被选为BCD码,必须在时间设置之前选择好格式,改变RTCBCD的状态和切换到计数器模式影响一样。
2.2闹钟功能
用户可编程闹钟只有在日历模式下有效。每一个闹钟寄存器都包括都包括一个闹钟使能位,AE用来修改每一个闹钟寄存器,通过设置闹钟寄存器的AE位,可以产生多种闹钟。无效的闹钟不会通过硬件的检测,所以用户有必要检查所设闹钟是否正确。
2.3读写实时时钟寄存器
系统时钟和实时时钟的时钟源异步,因而读写实时时钟寄存器的时候要注意。此时实时时钟寄存器每秒钟更新一次,为了防止在更新的时候读取实时时钟数据而造成错误数据的读取,应该设置一个禁止进入的窗口,在禁止进入窗口和窗口外期间,只有RTCRDY复位有效才可以读取。在RTCRDY复位的时候,读取操作是错误的并且读取的时间数据也无效被忽略。
2.4时钟中断
由于我做的部分只涉及实时时钟显示,中断部分没有过多涉及,就不在讨论了。
RTC实时时钟显示部分程序结构如下:




史海拾趣
|
从Nandflash启动的Bootload已经可以运行了,现在我想在做一个Norflash上的Bootload。从s3c2440的datasheet里面看,boot internal sram(4kb)的地址是0x40000000,所以我在用ADS调试Bootload的时候,ro地址只能设置为这个才能运行。我的疑问是,为 ...… 查看全部问答> |
|
S3C2450在wince5.0下用mediaplayer播放MP4的疑问? 硬件:S3C2450 主频400/533M,RAM:256M DDR2,LCD:7寸,分辨率800×480 OS:WINCE5.0 这样的环境下,用WINCE自带的MediaPlayer,能否流畅播放MP4? 7寸屏是固定的,播放视频时可适当下调整显示分辨率,不知道最大能流畅播放多少分辨率的视频! 考 ...… 查看全部问答> |
|
我们做了个TCPMP播放器的UI.但是在播放视频和图片的时候会有重影,特别是在播放图片的时候,会有上一张的残留,这样一张一张累积起来,效果很难看.视频好点, 但有时也能看出来.我们有在切换到下一张图片的时候屏黑一下屏幕,但是如果图片比较大的话(数码 ...… 查看全部问答> |
|
这是编写的一个自动切换量程的电压表汇编程序,调试时有个问题,就是只能从0.00调到1.99,不满足题目及程序的编写要求,恳请前辈们悉心指点一二:(题目:采用模数转换芯片ADC0832做电压采集,继电器做量程切换,电压采集结果用3位数码管显示,要 ...… 查看全部问答> |
|
各种AD例程里面几乎都有一句 while( (HWREG(ADC_BASE + ADC_O_X_SSFSTAT) & 0x00000100) ); /* 等待FIFO 0为非空,即等待转换*/ 这个ADC_O_X_SSFSTAT的宏定义附近是…… #define ADC_O_EMUX & ...… 查看全部问答> |




