xink_2345 发表于 2007-5-18 22:27:48

一个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:),经验还不足。

rabbitx2006 发表于 2007-5-19 09:12:26

可以的



很多AVR芯片带多个硬件实现的PWM输出

xink_2345 发表于 2007-5-19 18:17:21

主要的问题是 可不可以同时控制,例如同时输出两列相同的pwm波

____------   pwm1

____------   pwm2

   t

_ 代表0 - 代表1



简图希望大家能看得懂,代表一个周期的的pwm波,在时间t的时候能同时跳变吗?还是mcu先处理完pwm1的跳变再处理pwm2的跳变?即使是独立的硬件,但mcu也只能是一个一个硬件控制的吧?



应该是很简单的问题,但想不明白

rabbitx2006 发表于 2007-5-19 18:34:26

不同的pwm模式,跳变时间不一样,这个要看Datasheet了。

xink_2345 发表于 2007-5-19 22:56:01

两个pwm波会用同一个模式进行输出

xiejun 发表于 2007-5-19 23:48:10

其实这不用考滤,因为就算你得到一样的波形,电机的转速还会有差别的,如果你要小车前进,要调两个电机的转速一样,而不是要PWM输出一样。电机由于各种原因,各种参数不可能一致。我以前做过小车,得到一些经验。

1、要小车直线前进,要调整输出PWM(两路不一定相等),使电机转速一致。

2、要小车转弯,可以增加或减小一路PWM的占空比,左转右转要看实际情况。

laoki8888 发表于 2007-5-20 11:59:36

可以阿,我们用一路控舵机,一路控电机

kingwsf 发表于 2007-5-22 12:36:58

M168的T1有两个引脚OCR1A和OCR1B可以同时独立输出两路PWM,只要分别设置好匹配值就可以了
页: [1]
查看完整版本: 一个mcu能同时输出独立的pwm控制两个电机吗?