xlla 发表于 2013-6-17 17:43:48

关于 servo 库与 arduino mega 2560

请问有没有高人在 arduino mega 2560 的板子上用过servo 库?
在 mega 2560 上,连接 1-12 个舵机,servo 库默认会使用硬件资源 timer 5,这会导致在pin 44~46 上的 pwm 函数失效。

我的问题是,如何可以重新初始化相关的寄存器数据,来恢复 pwm 功能?
查看过servo 库及底层的代码,功力浅薄,只能看懂十之一二,望高人指点。

目前的思路是 detach 所有连接的舵机,然后根据 Fast PWM 或 Phase correct pwm 的参数,设置 5号定时器相关的寄存器。

我是用 pwm 来调节 led 的亮度,依照我的思路恢复pwm功能后,虽然亮度会变化,但伴随着闪烁;
用原始的 pwm 则不会闪烁。

部分代码如下:                TCCR5A =_BV(COM5A1)|_BV(WGM51)|_BV(WGM50);
                TCCR5B = _BV(WGM53)|_BV(WGM52)| _BV(CS51);
页: [1]
查看完整版本: 关于 servo 库与 arduino mega 2560