论坛元老
 
- 积分
- 3772
- 金钱
- 3772
- 注册时间
- 2015-4-26
- 在线时间
- 765 小时
|
1金钱
本帖最后由 来俩不甜的 于 2016-5-3 21:14 编辑
看了两三个帖子都是通过关闭定时器来实现的,我写的为什么不行呢?我只是通过[mw_shl_code=applescript,true]TIM_Cmd(TIM3, ENABLE);
TIM_Cmd(TIM3, DISABLE);[/mw_shl_code]来开关的,是不是还要设置别的什么东西?后来我发现不需要关闭定时器也可以实现精确计数。[mw_shl_code=applescript,true]当输出比较模式(TIMx_CCMRx寄存器中的OCxM位)从“冻结” (无比较, OCxM=’000’)切
换到某个PWM模式(OCxM=’110’或’111’)。
这样在运行中可以通过软件强置PWM输出。
中文参考手册270页第一句话。[/mw_shl_code]
主程序大循环如下:
[mw_shl_code=applescript,true] while(1)
{
delay_ms(500);
delay_ms(500); delay_ms(500);
TIM3 -> CCMR1 &= ~(7 << 12);
delay_ms(500);
delay_ms(500); delay_ms(500);
TIM3 -> CCMR1 |= (7 << 12);
} [/mw_shl_code]
知道的帮忙回答一下,为什么开关定时器实现不了精确脉冲输出,我这种写法有什么不妥的地方吗,为什么看不到有人这样写
|
|