定时器与 Arduino Leonardo 冲突
Timer conflict with Arduino Leonardo
我创建了一个基于 Arduino Leonardo 的四轴飞行器,我正在使用 Servo.h 库来控制电机输出。我现在正在安装一个便宜的 RF Link 套件作为第一次无线测试飞行的通信,并且我已经下载了 VirtualWire 库。它工作完美,但它使用与伺服库相同的定时器。
我发现的所有库都使用 timer1,而且更改源代码以使用另一个计时器似乎超出了我的能力范围。我也不确定 timer2 是否具有足够高的分辨率来处理通信(timer1 是 16 位,timer2 是 8 位)。
有没有人遇到过这个问题?有人对我如何解决这个问题有什么好的建议吗?
感谢所有建议和提示!
我将接收器换成了 Arduino UNO,并使用了 ServoTimer2 库
http://forum.arduino.cc/index.php?topic=21975.0
开箱后无法正常工作,因此您必须进行更改
extern "C" {
// AVR LibC Includes
#include <inttypes.h
#include <avr/interrupt.h>
#include <WConstants.h>
}
至
#include<Arduino.h>
这不是一个完美的解决方案,但目前有效。
我创建了一个基于 Arduino Leonardo 的四轴飞行器,我正在使用 Servo.h 库来控制电机输出。我现在正在安装一个便宜的 RF Link 套件作为第一次无线测试飞行的通信,并且我已经下载了 VirtualWire 库。它工作完美,但它使用与伺服库相同的定时器。
我发现的所有库都使用 timer1,而且更改源代码以使用另一个计时器似乎超出了我的能力范围。我也不确定 timer2 是否具有足够高的分辨率来处理通信(timer1 是 16 位,timer2 是 8 位)。
有没有人遇到过这个问题?有人对我如何解决这个问题有什么好的建议吗?
感谢所有建议和提示!
我将接收器换成了 Arduino UNO,并使用了 ServoTimer2 库 http://forum.arduino.cc/index.php?topic=21975.0
开箱后无法正常工作,因此您必须进行更改
extern "C" {
// AVR LibC Includes
#include <inttypes.h
#include <avr/interrupt.h>
#include <WConstants.h>
}
至
#include<Arduino.h>
这不是一个完美的解决方案,但目前有效。