TIM2->CCER|=3<<8;// OC3 高电平有效 A2 ICG TIM2->CCR3=1; // 比较寄存器为值1000 TIM...
TIM2_CCR3H=0;TIM2_CCR3L=0;TIM2_PSCR=0;TIM2_CR1|=0x01;} main(){ unsigned char i;PD...
TIMx capture/compare register 1 偏移地址:0x34 复位值:0x0000 000 5.14 TIMx 捕获/ 比较寄存器 2 (TIMx_CCR2) TIMx capture/compare register 2 偏移地址:0x38 复位值:0x0000 0000 5.15 TIMx 捕获/ 比较寄存器 3 (TIMx_CCR3) TIMx capture/compare register 3 偏移地址:0x3C 复位值:0x0000 0000 5....
//初始化比较寄存器,决定PWM 方波的占空比:5000/10000 = 50% TIM2_CCR3H = 31250/256; TIM2_CCR3L = 31250%256; // 启动计数;更新中断失能 TIM2_CR1 |= 0x81; //TIM2_IER |= 0x00; } void Init_GPIO(void) { /*设置为推挽输出,PD2接了LED灯*/ PD_DDR |= 0X04; //设置PD2端口为输出...
TIM2_CCR1L = 0xf4;TIM2_CCR2H = 0x1;TIM2_CCR2L = 0xf4;TIM2_CCR3H = 0x01;TIM2_CC...
剩下的问题就是单次延迟时间到了可以及时执行相应功能,那么就可以开启一个CC捕获比较中断。而延迟时间可以直接通过设置CCR比较捕获寄存器实现。比如当前定时器的计数值是1000,我们要实现10us的单次延迟,我们就可以直接设置CCR的数值为1000 + 10 =1010即可,等1010的计数值到了,就会触发CC捕获比较中断。
剩下的问题就是单次延迟时间到了可以及时执行相应功能,那么就可以开启一个CC捕获比较中断。而延迟时间可以直接通过设置CCR比较捕获寄存器实现。比如当前定时器的计数值是1000,我们要实现10us的单次延迟,我们就可以直接设置CCR的数值为1000 + 10 =1010即可,等1010的计数值到了,就会触发CC捕获比较中断。
剩下的问题就是单次延迟时间到了可以及时执行相应功能,那么就可以开启一个CC捕获比较中断。而延迟时间可以直接通过设置CCR比较捕获寄存器实现。比如当前定时器的计数值是1000,我们要实现10us的单次延迟,我们就可以直接设置CCR的数值为1000 + 10 =1010即可,等1010的计数值到了,就会触发CC捕获比较中断。
CC2 CC3 CC4 同样公式类推 CC1的定时为1秒/146.48 = 0.0068秒= 6.8ms CC1 update rate = TIM2 counter clock / CCR1_Val = 146.48 Hz CC2 update rate = TIM2 counter clock / CCR2_Val = 219.7 Hz CC3 update rate = TIM2 counter clock / CCR3_Val = 439.4 Hz CC4 update rate = TIM2 ...
TIM2的PWM功能解析