一个mcu能同时输出独立的pwm控制两个电机吗?
一直来对cpu的理解是一个时间只能执行一条指令,执行一个线程,所以产生如题的疑问两个电机用来驱动小车的两个轮子,所以需要同时控制让小车前进或者转向。
不知道mcu里的pwm输出可不可以按照我如下设想工作:
加载决定占空比的数据1到马达1对应的pwm(T1) 寄存器,
加载决定占空比的数据2到马达2对应的pwm(T2) 寄存器,
然后同时启动T1和T2开始计数。
感觉应该可以同时控制,但输出的pwm(T1)波从0到1的跳变的实现应该是要mcu去触发一个定时器1的IRS(例如PORT1=~PORT1),如果pwm(T2)有着不同的占空比,mcu可以在不同(错开)的时间去响应T2的IRS(例如PORT2=~PORT2)。但要是让两个马达以相同的速度转呢?那两个定时器同时要求中断,这样按照优先权就会先相应优先权高的那个,那不就没有同时控制了吗?
是不是说因为两个中断之间的时间间隔很短,就不用考虑,看作是同时控制的?
我这样的理解对不对,刚开始做mcu方面的项目,才烧了一片m168:),经验还不足。 可以的
很多AVR芯片带多个硬件实现的PWM输出 主要的问题是 可不可以同时控制,例如同时输出两列相同的pwm波
____------ pwm1
____------ pwm2
t
_ 代表0 - 代表1
简图希望大家能看得懂,代表一个周期的的pwm波,在时间t的时候能同时跳变吗?还是mcu先处理完pwm1的跳变再处理pwm2的跳变?即使是独立的硬件,但mcu也只能是一个一个硬件控制的吧?
应该是很简单的问题,但想不明白 不同的pwm模式,跳变时间不一样,这个要看Datasheet了。 两个pwm波会用同一个模式进行输出 其实这不用考滤,因为就算你得到一样的波形,电机的转速还会有差别的,如果你要小车前进,要调两个电机的转速一样,而不是要PWM输出一样。电机由于各种原因,各种参数不可能一致。我以前做过小车,得到一些经验。
1、要小车直线前进,要调整输出PWM(两路不一定相等),使电机转速一致。
2、要小车转弯,可以增加或减小一路PWM的占空比,左转右转要看实际情况。 可以阿,我们用一路控舵机,一路控电机 M168的T1有两个引脚OCR1A和OCR1B可以同时独立输出两路PWM,只要分别设置好匹配值就可以了
页:
[1]