pwm,那位大佬能帮忙解答一下
直接给pwmduty一个数{:4_197:}值,电机正常运行,转速也发生变化,但pwmduty的值是计算出来的,作为参数传入,电机异常。 用的stc32g12k128 将计算后的PWM值显示出来,就知道原因了。如果是同一个数值,直接给值还是计算出来的值,都是一样的。 可能为两种情况:
1.计算后的值出现了负数,因为PWM寄存器无法接受负数,所以会出现奇怪的异常
2.存在中断打断数据传输的情况,导致变量在中途被修改了。需要防止在主循环和中断内操作同一变量 王昱顺 发表于 2025-9-4 07:09
可能为两种情况:
1.计算后的值出现了负数,因为PWM寄存器无法接受负数,所以会出现奇怪的异常
2.存在中断 ...
解决了,原因是两个uint16的整数相减,在if里面判断差是否大于某个数时,如果差为正,那判断没问题,如果差为负,系统会将这个负数转换成uint16的正数,导致占空比一直自增。 梁工 发表于 2025-9-3 22:50
将计算后的PWM值显示出来,就知道原因了。
如果是同一个数值,直接给值还是计算出来的值,都是一样的。 ...
解决了,原因是两个uint16的整数相减,在if里面判断差是否大于某个数时,如果差为正,那判断没问题,如果差为负,系统会将这个负数转换成uint16的正数,导致占空比一直自增。
页:
[1]