打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
LPC1768 定时器初值计算

LPC1768 定时器初值计算

1) LPC_TIM0->MR0 = TimerInterval ; 这条语句指定了定时器装载的匹配值,timer0计数到这个值时就会产生中断,并且在中断函数里把timer0_counter加1.
2)LPC_TIM1->PR  = 0x00;                /* set prescaler to zero */ 这条语句表明timer0预分频值设为0,就是说timer0对外设时钟不分频,每个外设时钟信号到来,都会使timer0的计数值加1.
3)#define TIME_INTERVAL        (9000000/100 - 1) 这条语句说明timer0的匹配值是89999.也就是经过90000个外设时钟信号后,timer0将产生一次中断。因此timer0中断一次,计时的时间是90000/PCLK。如果PCLK=25MHz的话,则计时时间为(9/2.5)毫秒。
4)路虎开发板的timer例程中,PLL0输出的频率是400MHz,经4分频后,CPU的工作频率CCLK是100MHz。外设的频率是CCLK的4分频,也即25MHz。timer0计数的时钟PCLK就是25MHz。例程中50 * counter得到的延时是180ms。
5)Keil 'MCB1700' evaluation board的timer例程中,PLL0输出的频率是288MHz,4分频后CPU频率是72MHz,再经4分频后外设时钟是18MHz,若装载TIME_INTERVAL        (9000000/100 - 1),每个时钟中断得到的延时是9/1.8=5毫秒。但实际例程中没有装载此值,而是根据外设时钟分频值(4分频)设定了时钟计数的预分频值,set prescaler to get 1 M counts/sec,即每计数1000000可得到1秒延时,然后装载了匹配值TIME_INTERVALmS * 10=10000,得到了10ms的延时。


    
#define TIME_INTERVAL    2499//(9000000/100 - 1)   //计数9000000次,180ms,每次中断9/2.5,3.6ms
                              //  2499计数2500次,2500/25M,=0.1ms,就是10KZ

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
STM32的RCC配置流程
ARM9 S3C2440 定时器中断 - jay
【STM32】系统时钟RCC详解(超详细,超全面)
S3C2440之定时器0寄存器的配置 电子系统设计(ED China)专家博客-查看评论
【原创】STM32时钟控制RCC探究 来自 wolaiye945的博客-与非网博客
18. 时钟管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服