⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
沃利
离线
最后一次露面:2周3天前
加入:2016-06-21 01:23
Timer0问题

当同时使用Timer0中断和PWM时。时间不正确。

void timer_init(void)
{
set_tmr_enable(clk_per_reg_tmr_enabled);
set_tmr_div(clk_per_reg_tmr_div_8);
timer0_init(tim0_clk_fast,pwm_mode_one,tim0_clk_no_div);
timer0_register_callback(timer0_irq_handle);
timer0_set(1500,900,100);
timer0_enable_irq();
timer0_start();
}

timer0_set(1500,900,100);

PWM的高度和低电平是正确的,900 = 450US,100 = 50us。
中断时间不正确,1500 = 750us,实际时间为1000us。

附件:
设备:
lc_dialog.
离线
最后一次露面:2周6天前
职员
加入:2016-09-19 23:20
嗨,威廉,

嗨,威廉,

在DA14580中,ON计数器中断依赖于PWM的高值和低值,因为寄存器操作重新加载到这种情况下的套件值(在这种情况下为1500),直到定时器寄存器低值达到零。假设当计时器PWM0处于低计数的中间时,在计数器达到0时,ON计数器停留在0,直到PWM0在低计数上达到0,然后产生中断。为了保持一致,建议配置高低值,使得高低和低的总和始终等于值。希望这可以帮助。请参阅下面的文档片段。

最好的,
lc_dialog.

烟鸽
离线
最后一次露面:2年1个月前
加入:2017-07-19 09:37
你好!LC。

你好!LC。
您可以上传整个文件或告诉我们您引用的文件的参考编号吗?
非常感谢!

PM_DIALOG.
离线
最后一次露面:10小时26分钟前
职员
加入:2018-02-08 11:03
嗨班莫呼,

嗨班莫呼,

此信息来自DA14580 SoC的完整规范,它不可能提供它。

谢谢,PM_DIALOG.

烟鸽
离线
最后一次露面:2年1个月前
加入:2017-07-19 09:37
感谢你的回复。

感谢你的回复。

lc_dialog.
离线
最后一次露面:2周6天前
职员
加入:2016-09-19 23:20
嗨班莫呼,

嗨班莫呼,

添加到PM_DIALOG的评论,您可以在DA14585数据表中找到此信息。DA14580上的该模块类似于DA14585上的模块。因此,您可能会使用该Docuemnt以供参考。
请注意,并非所有其他模块都可能类似。

最好的,
lc_dialog.

烟鸽
离线
最后一次露面:2年1个月前
加入:2017-07-19 09:37
非常感谢LC。

非常感谢LC。
它真的很有用!