看了半天的DATAsheet,发现STM8的定时器太复杂了。但越是复杂的东西功能也就越多。学会了就使用起来方便多。
先从简单的TM4定时器搞起耍。
TM4的原理图如下
内部时钟源fMASTER通过预分频器Prescaler分频后输入到一个向上计数的计数器内计数。计数的值由Auto-reload registe装填。计数完毕后会产生一个事件或一个中断。
预分频器CK_CNT的频率为CK_PSC除以1、2、4....128.具体数值由TIM4_PSCR 寄存器的低三位决定。
计数器为一个8位向上计数的计数器。最多能计数到255.
其中自动重载寄存器由预装载寄存器和影子寄存器组成。
可在在两种模式下写自动重载寄存器:
● 自动预装载已使能(TIM4_CR1寄存器的ARPE 位置位)。在此模式下,写入自动重载寄存器
的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV) 时传送到影子寄存器。
● 自动预装载已禁止(TIM4_CR1寄存器的ARPE 位清除)。在此模式下,写入自动重载寄存器
的数据将立即写入影子寄存器。
而产生更新事件的条件有:
● 计数器向上或向下溢出。
● 软件置位了TIM1_EGR寄存器的UG位。
● 时钟/ 触发控制器产生了触发事件。
中断和事件的产生源都可以是一样的!