当Timer0中断和PWM同时使用时。正时不正确。
空计时器\u init(void)
{
设置“U tmr U enable”(CLK U PER U REG U tmr U ENABLED);
设置\u tmr_div(CLK_PER_REG\u tmr_div u 8);
TIM0_Uinit(TIM0 U CLK U FAST,PWM U模式U ONE,TIM0 U CLK U NO U DIV);
timer0_register_u回调(timer0\u IRQ\u句柄);
timer0炣设置(1500、900、100);
timer0 U enable_UIRQ();
timer0_ustart();
}
timer0炣设置(1500、900、100);
PWM的高度和下限正确,900=450us,100=50us
中断时间不正确,1500=750us,实际时间1000us
设备:
嗨,沃利,
在DA14580中,ON计数器中断依赖于PWM的高和低值,因为重新加载ON CONTRER值(在这种情况下为1500)的寄存器操作必须等到定时器寄存器低值达到零为止。假设当定时器PWM0处于低计数中间时,ON计数器达到0时,ON计数器保持在0,直到PWM0在低计数时达到0,然后生成中断。为了保持事物的一致性,建议配置高低值,以便高和低的总和始终等于ON值。希望这有帮助。请参阅下面的文档片段。
最好的,
LC\u对话框
你好!连卡佛。
你能上传整个文件吗?或者告诉我们你引用的文件的参考号?
谢谢!
嗨,贝蒙,
此信息来自DA14580 SoC的完整规格,无法提供。
谢谢,下午好
谢谢你的回复。
嗨,贝蒙,
添加到PM炭对话框的注释中,您可能会在DA14585数据表中找到这些信息。DA14580上的此模块与DA14585上的模块类似。所以你可以用这个docuemnt作为参考。
请注意,并非所有其他模块都可能相似。
最好的,
LC\u对话框
非常感谢你的信用证。
真的很有用!