定时器使用的时钟源都是TIMxCLK,时钟源经过PSC预分频器输入至脉冲计数器TIMx_CNT,基本定时器只能工作在向上计数模式,在重载寄存器TIMx_ARR中保存的是定时器的溢出值。
工作时,脉冲计数器TIMxCNT,由时钟触发进行计数,当TIMxCNT的计数值X等于重载寄存器TIMxARR中保存的数值N时,产生溢出事件,可触发中断或DMA请求。然后TIMxCNT的值重新被置为0,重新向上计数。
PWM输出过程分析
通用定时器可以利用GPIO引脚进行脉冲输出,在配置为比较输出,pwm输出功能时,捕获/比较寄存器TIMxCCR被用作比较功能,下面把它简称为比较寄存器。
这里直接举例说明定时器的pwm输出工作过程:若配置脉冲计数器TIMxCNT为向上计数,而重载寄存器TIMxARR被配置为N,即TIMxCNT的当前计数值数值X在TIMxCLK时钟源的驱动下不断累加,当TIMxCNT的数值x大于N时,会重置TIMxCNT数值为0并重新计数。
配置TIM4_CH2 PB.7
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
delay_init(); //延时函数初始化
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
//