我们来看这个图。
计数器递减运行,TIMA.CTR 计数器从 TIMA.LOAD 开始递减,直到 0。
计数器到达 0
计数器到达 0 时,自动重装 TIMA.LOAD。不用自己装这个值,自动的装了。
重复计数器 TIMA.RC 递增(TIMA.RC += 1)。
零事件抑制(SLZERCNEZ = 1)
由于 SLZERCNEZ = 1,普通的计数到 0 事件不会产生中断(Zero Events Suppressed)。
只有 TIMA.RC == TIMA.RCLD 时,才会触发真正的事件。
当 TIMA.RC == TIMA.RCLD 时
触发 Repeat Counter Zero Interrupt(REPC = 1),表示真正的中断事件发生。
有啥用呢?减少中断频率:
如果没有 SLZERCNEZ = 1,计数器每次到 0 都会触发中断,这可能会造成 CPU 过载。
通过重复计数器(RC)机制,可以在 N 次零事件后触发一次真正的事件,降低中断处理的频率,提高系统效率。
适用于周期性任务:PWM 需要在 N 个周期后触发一个更大的任务,比如更新占空比、调整调节器等。
可以更加的精细控制定时行为:允许控制定时事件触发的周期,而不是让每个定时周期都产生中断。