当前位置: 代码迷 >> 综合 >> lpc1768 时钟与定时器
  详细解决方案

lpc1768 时钟与定时器

热度:56   发布时间:2023-12-08 20:19:09.0

 

时钟包含4部分

1:CLKSRC  :实例中为01
   如下选择PLL0的时钟源:
  00   选择内部RC振荡器作为PLL0时钟源(默认)
  01   选择主振荡器作为PLL0时钟源
  10   选择RTC振荡器作为PLL0时钟源
  11   保留,不使用该值

2:PLL0配置寄存器(PLL0CFG – 0x400F C084)
FCCO =(2×M×FIN)/ N   //示例中FCCO=2×100×12Mhz /6=100MHz

FIN     时钟源选择多路复用中PLL输入时钟的频率
FCCO系统时钟频率(PLL电流控制振荡器的输出)
N:PLL0CFG寄存器的NSEL0位的PLL0预分频值(PLL0CFG NSEL0字段+1)。N是从1~32之间的一个整数
M:PLL0CFG寄存器中MSEL0位的PLL0倍频值(PLL0CFG MSEL0字段+1)。
并不是所有可能的M值都被支持。

 

3:再分频:CPU时钟配置寄存器(CCLKCFG – 0x400F C104),示例这里为5也就是6分频
分频值CCLKSEL只能是0和奇数值(1、3、5…,255),CCLK从PLL0输出信号中得到,通过CCLKSEL+1分频

 

4:输入到定时器的时钟再分频,  实例这里为4分频

//   <h> Peripheral Clock Selection Register 0 (PCLKSEL0)
//     <o9.0..1>    PCLK_WDT: Peripheral Clock Selection for WDT
//                     <0=> Pclk = Cclk / 4
//                     <1=> Pclk = Cclk
//                     <2=> Pclk = Cclk / 2
//                     <3=> Pclk = Hclk / 8
//     <o9.2..3>    PCLK_TIMER0: Peripheral Clock Selection for TIMER0
//                     <0=> Pclk = Cclk / 4
//                     <1=> Pclk = Cclk
//                     <2=> Pclk = Cclk / 2
//                     <3=> Pclk = Hclk / 8

5:定时器得到的时钟为25mhz,

定时器可以使用PC和PR进行再分频,实例中这里为0,就是不再分频,

MR0是预设值当,每来一个脉冲,TC自加1,当TC和MR0相等时。触发定时器.

————》PR和PC ————> TC和MR0 -->触发