PWM输出在一个周期之间变为高电平。

⚠️
你好。。谢谢你来参加论坛。令人兴奋的消息!我们现在正在移动到我们的新论坛平台,将提供更好的功能,并包含在主对话网站的过程。所有帖子和账号都已迁移。我们现在只接受新论坛上的流量-请在//www.wsdof.com/support. 我们将在未来几天内修复bug/优化搜索和标记。
11个职位/0个新职位
最后一篇文章
今泉.k
离线
最后一次见到:3天12小时前
已加入:2018-06-22 01:18
PWM输出在一个周期之间变为高电平。

你好,对话支持团队,

我想改变PWM占空比动态(使用定时器2)。
脉冲宽度调制输出在一个周期内出现高电平现象。
我附上了PWM输出的快照。

我阅读了DA14580数据表中的“图48:定时器2 PWM框图”。
我认为这种现象是由一种责任比较引起的。
当T2_占空比仅等于PWM2_占空比时,PWM输出变为低电平。
但当PWM2\u占空比设置值小于T2\u占空比时,PWM输出在一个周期内保持高电平。

我认为这种现象发生在所附的快照中

这个想法正确吗?
你能告诉我这个解决办法吗?

致以最诚挚的问候,
今泉胜寿,

关键词:
附件:
设备:
PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨imaizumi.k,

嗨imaizumi.k,

当您将pwm占空比更改为较低的pwm占空比时,有时会发生这种现象,因为新的pwm占空比必须等到定时器2变为零。因此,如果将占空比改为较低的占空比,并且计时器将不为零,则会看到一个占空比之间的高电平。一个理论上的解决办法是在改变占空比之前,将定时器2归零并添加一个小延迟(例如3nop)。

谢谢,下午好

今泉.k
离线
最后一次见到:3天12小时前
已加入:2018-06-22 01:18
我明白我必须

我明白我必须等到计时器2归零后才能换班。
但我不知道怎么看定时器2归零的时间。
因为T2\u DUTY\u CNTR和T2\u FREQ\u CNTR是内部寄存器,所以14580内核不能读取它。

你能告诉我怎样确认定时器2计数器吗?

致以最诚挚的问候,
今泉胜寿

PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨imaizumi.k,

嗨imaizumi.k,

你能澄清一下你的问题吗?正如我在上一篇文章中提到的,在改变占空比之前,应该添加一个小延迟(例如3nop)。那么,你想知道延迟的持续时间吗?

谢谢,下午好

今泉.k
离线
最后一次见到:3天12小时前
已加入:2018-06-22 01:18
对不起,我不能

抱歉,但我不明白“解决方法是将计时器归零2”的含义。
它的意思是“定时器2计数器为零”还是“定时器2停止”?或者别的意思?

如果是“计时器2计数器为零”,请告诉我方法。
如果是2“Timer2 to stop”,我理解为“Timer2 stop->3NOP->Duty change->Timer2 start”。
但是当我做timer2重启时,timer2的循环时间会改变。
我不想改变PWM的定时,我只想改变PWM的占空比。

你能告诉我问题的答案吗?

致以最诚挚的问候,
今泉胜寿,

PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨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">嗨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">

今泉.k
离线
最后一次见到:3天12小时前
已加入:2018-06-22 01:18
谢谢你的回复。

谢谢你的回复。
我想知道如何在不停止定时器的情况下将定时器2设置为零。
请告诉我怎么做。

致以最诚挚的问候,
今泉胜寿

PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨imaizumi.k,

嗨imaizumi.k,

你能上传你正在使用的代码片段吗?在那之后,我会审查它,我会尽快回复你。

谢谢,下午好

今泉.k
离线
最后一次见到:3天12小时前
已加入:2018-06-22 01:18
我附上了源代码

我附上了引起这种现象的源代码。
这是样本源“timer2\u pwm”besed。
我修改了它以缩短任务设置时间。

你能检查一下密码吗?

致以最诚挚的问候,
今泉胜寿

PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨imaizumi.k,

嗨imaizumi.k,

谢谢你上传你的代码。让我检查一下你的项目,我会尽快给你回复。

谢谢,下午好

PM\U对话框
离线
最后一次见到:3小时40分钟前
工作人员
已加入:2018-02-08 11:03
嗨imaizumi.k,

嗨imaizumi.k,

您正在使用的延迟太短,因此我强烈建议您使用默认延迟(1秒)作为SDK的示例。

谢谢,下午好