×
单片机 > 单片机程序设计 > 详情

LPC 学习笔记之定时器

发布时间:2020-06-04 发布时间:
|
对LPC定时器与时间相关的寄存器有PC,PR,TC,MR。

  PC--------预分频计数寄存器
  PR--------预分频寄存器
  TC--------定时计数寄存器
  MR--------匹配寄存器
  TCR-------定时器/计数器控制寄存器

  if(PR == PC)
  {
    PC = 0;
    TC += 1;
  }
  if{TC == MR}
  {
     根据MCR的设置进行相应的动作:
     1,定时器产生中断
     2,TC = 0即TC清零
     3,停止定时器TC,PC停止,TCR[0] = 0;即停止定时器/计数器。
  }
                
  LPC中的定时器只能向上计数,即从0开始计数。
 PC每个PCLK 周期加1 。当其值到达预分频寄存器中保存的值时,定时器计数器 TC加1 ,预分频计数器在下个PCLK 周期复位。例如,当PR=0 时,定时器计数器每个 PCLK 周期加1 ,当 PR=1 时定时器计数器每 2 个PCLK 周期加1 ,以此类推。

根据文档描述“当PR=0 时,定时器计数器每个 PCLK 周期加1”这说明对PCLK进行了分频,这就说明了PR为什么叫做预分频寄存器的原因了。但是如果定时器的PCLK是24MHz的,按理说PR=0时,应是12MHZ,但是从示波器上来看好像不是不知为什么?但是对于毫秒的定时,按照文档说明的推理和现实示波器的测了是准确无误的。

定时时间 = PCLK / (2PR); 为什么乘2呢?是因为分频的原因,不要忘记当PR=0时也是有分频作用的哦!



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
可升级和可配置的PSoC62系列MCU平台架构