时钟包含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 -->触发