20145嵌入式系统体系结构与开发——时钟研讨.ppt

20145嵌入式系统体系结构与开发——时钟研讨.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
20145嵌入式系统体系结构与开发——时钟研讨

2-3)设置锁定时间和PLL 2)设置锁定时间 设置PLL 后,时钟从 Fin 提升到目标频率时,需要一定的时间,即锁定时间。设置为最大值。 3)设置PLL 设置好分频和锁定时间后,需要设置PLL 。MPLL的启动是通过设置MPLLCON 寄存器: 设置锁定时间和PLL MPLLCON MPLL的输出设置为800MHz,由于FOUT = MDIV * FIN / (P DIV * 2^SDIV),参考下面这个表格,取MDIV=400,PDIV=3,SDIV=1 4) 设置各种时钟开关 设置SELMPLL=1,使用MPLL output 作为MSYSCLK 的输入,其余位都使用默认值。 定时器编程 控制寄存器TCFG1 定时器编程 TCON 设置自动重装/手动重装 启动/停止 定时器编程 TCNTBn/TCMPBn 定时器编程 当前计数器(只读) 本次内容 时钟体系 2410的3种时钟 上电的启动过程 编程模型 PWM定时器 概述 PWM基本框图 编程模型 RTC实时时钟 概述 RTC基本框图 编程模型 WATCHDOG定时器 概述 基本框图 编程模型 REAL TIME CLOCK (RTC) 概述 实时时钟单元可以提供可靠的时钟,包括时、分、秒和年、月、日。即使系统处于关机状态下,它也能够正常工作(通常采用后备电池供电,能够可靠工作十年),其外围也不需要太多的辅助电路,只需要一个高精度的晶振。 特点: 时钟数据采用BCD编码或二进制表示; 能够对闰年的年、月、日进行自动处理; 具有告警功能,当系统处于关机状态时,能产生告警中断; 具有独立的电源输入; 提供毫秒级的时钟中断,该中断可用于嵌入式操作系统的内核时钟。 实时时钟特殊功能寄存器 实时时钟控制(RTCCON)寄存器 RTCCON 寄存器由4 位组成,如控制BCD 寄存器读/写使能的RTCEN、CLKSEL、CNTSEL 和测试用的CLKRST。 RTC 闹钟控制(RTCALM)寄存器 RTCALM 寄存器决定了闹钟使能和闹钟时间。在掉电模式中同时通过INT_RTC 和PMWKUP 产生闹钟信号,但是在正常工作模式中只产生INT_RTC。 闹钟寄存器 闹钟秒数据(ALMSEC)寄存器 闹钟分数据(ALMMIN)寄存器 闹钟时数据(ALMHOUR)寄存器 闹钟日数据(ALMDATE)寄存器 闹钟月数据(ALMMON)寄存器 闹钟年数据(ALMYEAR)寄存器 BCD 寄存器 存储的是当前时间秒BCDSEC,BCDMIN,BCDHOUR,BCDDATE(日),BCDDAY(星期),BCDMON,BCDYEAR RTC内部框图 框图 时钟 32.768 kHz 编程设计 基本步骤 时钟初始化。 校时。把嵌入式控制系统投入运行时要将当前准确时间写入RTC; 系统正常运行后,读取RTC时间在LCD上显示。 可编程寄存器 RTCCON 复位 BCD计数选择 BCD时钟选择 RTC使能 可编程寄存器 TICNT 可编程寄存器 RTCALM alarm数据设置寄存器 秒、分、时、日、月、年类同 可编程寄存器 可编程寄存器 RTCRST RTC循环复位寄存器 BCD数据设置寄存器 设置初值 可编程寄存器 实验实例 主要函数 rtc_init rtc_set rtc_int rtc_alarm rtc_check rtc_read rtc_tick rtc_tick_test rtc_display 实验实例 RTC_TEST() 时钟初始化处理 void rtc_init(void) { rRTCCON = rRTCCON ~(0xf) | 0x1; // No reset, Merge BCD counters, 1/32768, RTC Control enable rBCDYEAR = rBCDYEAR ~(0xff) | TESTYEAR; rBCDMON = rBCDMON ~(0x1f) | TESTMONTH; rBCDDATE = rBCDDATE ~(0x3f) | TESTDATE; rBCDDAY = rBCDDAY ~(0x7) | TESTDAY; // SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7 rBCDHOUR = rBCDHOUR ~(0x3f) | TESTHOUR; rBCDMIN = rBCDMIN ~(0x7f) | TESTMIN; rBCDSEC = rBCDSEC ~(0x7f) | TESTSEC; rRTCCON = 0x0;

您可能关注的文档

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档