1.定时器结构分析
- 1.每来一个CLK,TCNTn减1
- 2.当
TCNTn == TCMPn
时,(可以把对应的PWM引脚翻转)TCNTn
与TCMPn
的值来自寄存器TCNPBn
与TCMTBn
- 3.TCNTn继续减1,当
TCNTn == 0
时,可以产生中断(PWM引脚再次翻转) - 4.
TCNTn == 0
时,可自动加载初值
2.初始化
- 1.设置时钟源
- 2.设置初值
- 3.加载初值,启动Timer
- 4.设置为自动加载
- 5.中断相关
- 需要设置:1.Prescaler,2.MUX(Divider),3.TCMPB0(不是PWM测试,因此该不需要设置),4.TCNTB0,5.TCON0
2.1 设置时钟源
- 由上公式:
- 设置Prescaler
- 设置MUX
/* 1.设置timer0的时钟
* Timer CLK = PCLK / {prescaler value+1} / {divider value}
* 50000000/(99+1)/(16) = 31250
*/
TCFG0 =