Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ATMega328p таймеры 8Bit #10

Open
GusakIurii opened this issue Apr 29, 2019 · 1 comment
Open

ATMega328p таймеры 8Bit #10

GusakIurii opened this issue Apr 29, 2019 · 1 comment

Comments

@GusakIurii
Copy link

Судя документации ATMega328p имеет 2 шт. - 8 битных таймера, 1шт.- 16 битный таймер.
– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture
Mode

Подскажите пожалуйста Ваша библиотека рассчитана только на 16 битные таймеры?
Пробую объявить 2 переменные таймеров:
int _timer1 = _TIMER1;
int _timer2 = _TIMER2;
компилятор ругается на int _timer2 = _TIMER2;

Подскажите пожалуйста возможно ли на ATMega328p процессоре, с вашей библиотекой использовать три таймера?
Для моей задачи достаточно и двух, но может кому то нужно три штуки...

@sadr0b0t
Copy link
Owner

sadr0b0t commented Jun 7, 2019

Добрый день. Прошу прощения за долгий ответ, весна получилась сильно замороченая.

Код для инициализации таймеров для ARV я брал из стандартной библиотеки Arduino для управления сервомашинками Servo.h
https://github.com/arduino/Arduino/blob/ide-1.5.x/libraries/Servo/src/avr/ServoTimers.h
https://github.com/arduino/Arduino/blob/ide-1.5.x/libraries/Servo/src/avr/Servo.cpp

Проверял на ардуинах, которые были под рукой (Uno и Leonardo, кажется). Для остальных чипов не проверял - эта часть кода в основном попала в библиотеку как есть.

В общем, если на вашем чипе есть таймеры, для которых не объявлена константа в библиотеке, вы можете попробовать их добавить в код, все необходимое для платформы AVR должно находиться в этом файле:
https://github.com/sadr0b0t/arduino-timer-api/blob/master/src/avr/timer_setup.c

Скорее всего придется почитать даташит на ваш чип. И бы еще посмотрел последнюю версию Servo.cpp из Arduino, возможно, они уже исправили код для вашего чипа и добавили недостающие таймеры.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants