当Timer0中断时,同时使用PWM。时机不对。
空白timer_init(空白)
{
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。
设备:
嗨,沃利,
在DA14580中,ON计数器中断依赖于PWM的HIGH和LOW值,因为寄存器操作重新加载ON计数器值(在本例中为1500)必须等待,直到计时器寄存器LOW值达到零。让我们假设,当定时器PWM0处于LOW计数中间时,ON计数器达到0,直到PWM0在LOW计数上达到0,然后产生中断,ON计数器保持在0。为了保持一致,建议配置HIGH LOW值,使HIGH和LOW的和始终等于ON值。希望这个有帮助。请参阅下面的文档片段。
最好的
LC_Dialog
这就跟你问声好!信用证。
你能上传整个文件吗,或者告诉我们你引用的文件的参考编号吗?
谢谢!
嗨bemoon,
此信息来自DA14580 SoC的完整规范,无法提供。
谢谢,PM_Dialog
感谢您的回复。
嗨bemoon,
添加到PM_Dialog的注释中,您可能会在DA14585数据表中找到此信息。DA14580上的这个模块与DA14585上的类似。所以你可以参考这个文档。
请注意,并非所有其他模块都是类似的。
最好的
LC_Dialog
非常感谢LC。
这是非常有用的!