Servo.h и таймеры
- Войдите на сайт для отправки комментариев
Доброго времени суток.
Порылся в файле "Servo.h", из него ясно, что для управления сорока восемью (48) сервоприводами (для контроллера ATMega2560) библиотека <Servo.h> используются четыре 16bit таймера, при этом для управления двадцатью четырьмя (24) - всего два:
Timers are seized as needed in groups of 12 servos - 24 servos use two timers, 48 servos will use four.
Как я понимаю, для управления каждой добавляемой группы из двенадцати сервоприводов выделяется один таймер в следующей очередности (из файла ServoTimers.h):
// Say which 16 bit timers can be used and in what order #if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) #define _useTimer5 #define _useTimer1 #define _useTimer3 #define _useTimer4 typedef enum { _timer5, _timer1, _timer3, _timer4, _Nbr_16timers } timer16_Sequence_t;
Прошу поправить, если я ошибаюсь.
Проблема в том, что нужно использовать один таймер для отсчета и прерываний и еще как минимум один только для прерываний. В моем проекте будет использовано минимум 11 сервоприводов, возможно и больше.
Думаю, о сути вопроса вы догадались - можно ли отключить использование двух таймеров в библиотеке Servo и юзать их для своих целей, и при этом чтобы стабильно работала библиотека? И если можно, то как?