你好,对话支持团队,
我想改变PWM占空比动态(使用定时器2)。
脉冲宽度调制输出在一个周期内出现高电平现象。
我附上了PWM输出的快照。
我阅读了DA14580数据表中的“图48:定时器2 PWM框图”。
我认为这种现象是由一种责任比较引起的。
当T2_占空比仅等于PWM2_占空比时,PWM输出变为低电平。
但当PWM2\u占空比设置值小于T2\u占空比时,PWM输出在一个周期内保持高电平。
我认为这种现象发生在所附的快照中
这个想法正确吗?
你能告诉我这个解决办法吗?
致以最诚挚的问候,
今泉胜寿,
关键词:
设备:
嗨imaizumi.k,
当您将pwm占空比更改为较低的pwm占空比时,有时会发生这种现象,因为新的pwm占空比必须等到定时器2变为零。因此,如果将占空比改为较低的占空比,并且计时器将不为零,则会看到一个占空比之间的高电平。一个理论上的解决办法是在改变占空比之前,将定时器2归零并添加一个小延迟(例如3nop)。
谢谢,下午好
我明白我必须等到计时器2归零后才能换班。
但我不知道怎么看定时器2归零的时间。
因为T2\u DUTY\u CNTR和T2\u FREQ\u CNTR是内部寄存器,所以14580内核不能读取它。
你能告诉我怎样确认定时器2计数器吗?
致以最诚挚的问候,
今泉胜寿
嗨imaizumi.k,
你能澄清一下你的问题吗?正如我在上一篇文章中提到的,在改变占空比之前,应该添加一个小延迟(例如3nop)。那么,你想知道延迟的持续时间吗?
谢谢,下午好
抱歉,但我不明白“解决方法是将计时器归零2”的含义。
它的意思是“定时器2计数器为零”还是“定时器2停止”?或者别的意思?
如果是“计时器2计数器为零”,请告诉我方法。
如果是2“Timer2 to stop”,我理解为“Timer2 stop->3NOP->Duty change->Timer2 start”。
但是当我做timer2重启时,timer2的循环时间会改变。
我不想改变PWM的定时,我只想改变PWM的占空比。
你能告诉我问题的答案吗?
致以最诚挚的问候,
今泉胜寿,
minor-latin;mso-bidi-theme-font:minor-latin;border:none windowtext 1.0pt;
mso-border-alt:none windowtext 0cm;padding:0cm;background:white;mso-ansi-language:
EN-US">嗨imaizumi.k,
minor-latin;mso-bidi-theme-font:minor-latin;border:none windowtext 1.0pt;
mso-border-alt:none windowtext 0cm;padding:0cm;background:white;mso-ansi-language:
EN-US">抱歉耽搁了。您应该将计时器设置为零,并添加一个小的延迟,因此不需要停止计时器。你能告诉我你是否需要这方面的指导吗?你把计时器调零了吗?
minor-latin;mso-bidi-theme-font:minor-latin;border:none windowtext 1.0pt;
mso-border-alt:none windowtext 0cm;padding:0cm;background:white;mso-ansi-language:
EN-US">谢谢,下午好 mso-ascii-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-theme-font:
minor-latin;background:white;mso-ansi-language:EN-US">
谢谢你的回复。
我想知道如何在不停止定时器的情况下将定时器2设置为零。
请告诉我怎么做。
致以最诚挚的问候,
今泉胜寿
嗨imaizumi.k,
你能上传你正在使用的代码片段吗?在那之后,我会审查它,我会尽快回复你。
谢谢,下午好
我附上了引起这种现象的源代码。
这是样本源“timer2\u pwm”besed。
我修改了它以缩短任务设置时间。
你能检查一下密码吗?
致以最诚挚的问候,
今泉胜寿
嗨imaizumi.k,
谢谢你上传你的代码。让我检查一下你的项目,我会尽快给你回复。
谢谢,下午好
嗨imaizumi.k,
您正在使用的延迟太短,因此我强烈建议您使用默认延迟(1秒)作为SDK的示例。
谢谢,下午好