-
AC7811怎么实现PWM一个通道输出的强制同步?
[color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]在产品设计中用到PWM的一个功能,需要对PWM通道输出做出精准控制。想实现的功能是:在命令发出时立刻终止当前通道的PWM输出周期,同时需要立刻再开启一个新的输出周期。目的是可以随时改变占空比对电磁阀开启时间做出精准无延时控制。[/size][/font][/backcolor][/color] [color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]现在能实现的功能:开启一个新的PWM输出周期只能在当前PWM输出周期结束后下一个周期开始时才可以。问题是如果我的PWM周期为10MS,如果我的控制指令是在该PWM输出周期刚开始时发出的,PWM要到10MS之后结束前一个周期才能执行我刚才发出的指令。这样就会造成有接近10ms的延时。[/size][/font][/backcolor][/color][color=#444444][backcolor=rgb(255, 255, 255)][font=Tahoma, "][size=15px]现在的控制策略:用PWM通道的周期作为主程序的循环周期,10MS的周期,查询PWM通道计数器的值,在PWM计数器走到8MS时运行主程序并输出PWM通道控制,这样在下一个周期开始时,就可以执行新的PWM通道赋值,这样延时基本上在1MS左右。这个策略接近我原来用NXPs12的控制效果了,但是还是有差异。不能做到完全相同。[/size][/font][/backcolor][/color]
6044浏览量 1回复量 关注量 -
485通讯偶尔出现第一个字节或者前两个字节丢失
[i=s] 本帖最后由 影烛光 于 2020-12-25 10:29 编辑 [/i] 485通讯, 波特率是115200 思路是中断收发数据,主程序中检测到总线大于2ms空闲后,进行接收数据处理,再重新发送。 错误的概率不高,但是偶尔会出现。 目前最严重的情况是直接导致单片机和屏幕无法进行通讯(无法自己调节,重启后仍可能无法通讯) [attach]1601054[/attach]补充一下,这个是原理图
18871浏览量 21回复量 关注量