STM32
登录
直播中
王娟
7年用户
462经验值
私信
关注
[问答]
pwm中调整下一个周期的占空比会送多一到两个错误的脉冲是为什么?
开启该帖子的消息推送
PWM
请问在pwm中调整下一个周期的占空比的问题。我现在用
ti
mer4的第二通道产生pwm,利用预装载功能,在每个pwm更新周期前设置下一个周期的占空比,但好像临停止的时候(脉冲流的尾段)会送多一个到两个错误的脉冲。请帮忙看看是什么问题。代码是这样的: ...... ...... if (buff[t]&0x08) TIM4->CCR2=50; else TIM4->CCR2=130; //(A处) while (!(TIM4->SR&1)) ; TIM4->SR&=~1; //清除更新事件标志 if (buff[t]&0x04) TIM4->CCR2=50; else TIM4->CCR2=130; //(B处) //这里不等A处设置的pwm时间周期结束,就直接再写入新的参数,利用预装载功能 while (!(TIM4->SR&1)) ; //检查更新事件。这里等待的是A处设置的pwm时间周期结束 TIM4->SR&=~1; if (buff[t]&0x02) TIM4->CCR2=50; else TIM4->CCR2=130; //(C处) while (!(TIM4->SR&1)) ; TIM4->SR&=~1; if (buff[t]&0x01) TIM4->CCR2=50; else TIM4->CCR2=130; //(D处) while (!(TIM4->SR&1)) ; //这里等待的是C处设置的pwm时间周期结束 TIM4->SR&=~1; //D处设置的pwm时间周期这时还没有结束 } TIM4->CR1|=1<<3; //到最后了,改单脉冲模式,这个脉冲结束时,定时器自动停止。但这里好像会送多一到两个错误脉冲出去。
或者有否其他更好的处理方面?
请帮忙。
谢谢。
回帖
(4)
崔璨
2020-4-28 09:17:20
你这样的做法,貌似不靠谱.
当你检查到更新的时候,并不是立即更新的,while,赋值,都需要时间,这个期间,可能PWM的下一个周期已经开始输出了,然后你又修改CCR2的值,导致输出脉冲不正确.
你这样的做法,貌似不靠谱.
当你检查到更新的时候,并不是立即更新的,while,赋值,都需要时间,这个期间,可能PWM的下一个周期已经开始输出了,然后你又修改CCR2的值,导致输出脉冲不正确.
举报
王英
2020-4-28 09:27:12
那怎搞嘛?
那怎搞嘛?
举报
陈思远
2020-4-28 09:34:43
我那里检查更新是检查前一个pwm周期是不是结束,见代码的第5行。我是想用那个预装载功能,即是我现在赋的值要等前一个pwm周期完成后,在更新周期时才装入,我就在前一个pwm周期还没结束时(前一个pwm周期的期间),再赋一个新的值给它。等它下次更新周期时拿这个值。
另外,速度很高,1uS级别的。
我那里检查更新是检查前一个pwm周期是不是结束,见代码的第5行。我是想用那个预装载功能,即是我现在赋的值要等前一个pwm周期完成后,在更新周期时才装入,我就在前一个pwm周期还没结束时(前一个pwm周期的期间),再赋一个新的值给它。等它下次更新周期时拿这个值。
另外,速度很高,1uS级别的。
举报
李红
2020-4-28 09:40:00
自动重装是在计数器溢出的情况下重装的。
比如装入计数器值为1,向下计数:计一次数,由1到0,再计一次才溢出。
所以重装值应该为 (要计数值) - 1。
自动重装是在计数器溢出的情况下重装的。
比如装入计数器值为1,向下计数:计一次数,由1到0,再计一次才溢出。
所以重装值应该为 (要计数值) - 1。
举报
更多回帖
rotate(-90deg);
回复
相关问答
PWM
请问CN0359方案
中
4.7uF的电容能够保持
到
下一个
采样
周期
吗?
2018-08-28
2273
如何更新这
两个
不会导致无效
PWM
周期
的寄存器?
2019-09-12
1608
HRTIM将100%
占空比
脉冲
插入
PWM
,
PWM
的单个
脉冲
是
错误
的怎么解决?
2023-01-16
388
基于FPGA产生
两个
控制
脉冲
2016-05-30
3573
请问在
PWM
脉冲
输出过程
中
,我想停止
PWM
脉冲
输出,但
PWM
脉冲
周期
依然使能,如何实现?
2018-06-11
6238
如何产生
两个
PWM
周期
2020-04-26
1599
LTC1871重载时
PWM
占空比
不连续是什么原因造成的?
2024-01-05
303
PWM
的
周期
和
占空比
是如何计算的?计算公式是什么?
2015-09-15
107547
还有什么比仅使用HAL输出
一
个
正定时器
脉冲
更简单的呢?
2022-12-02
196
如何保存
一
个
瞬间非零值
到
下一个
非零值出现为止?
2018-01-19
1895
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分