极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11160|回复: 0

关于 servo 库与 arduino mega 2560

[复制链接]
发表于 2013-6-17 17:43:48 | 显示全部楼层 |阅读模式
请问有没有高人在 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 则不会闪烁。

部分代码如下:
  1.                 TCCR5A =  _BV(COM5A1)|_BV(WGM51)|  _BV(WGM50);
  2.                 TCCR5B = _BV(WGM53)|_BV(WGM52)| _BV(CS51);
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 23:14 , Processed in 0.039700 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表