Помогите разобраться с таймером
- Войдите на сайт для отправки комментариев
собираю дисплей на 7-сигментном светодиоде в основе 74ch595
динамическое обновление идет через три пина напрямую от АРДУИНО включением массы, функция LOOP пока что не заполнена сильно и индекатор работает с функц. (millis() -previousMillis >100)
почитал статьи про С+ узнал что если сделать на таймере прерывание то цитирую
(прерывание по совпадению. Это значит, что при совпадении таймера и регистра сравнения, ваша текущая программа остановится. После этого выполнится участок кода, который абсолютно не связан с основной программой. Внутри этого участка вы можете писать что угодно и не беспокоиться о том, что он как то повлияет на программу, выполнится он только когда значение таймера совпадет с регистром сравнения. После того как код внутри прерывания выполнится, программа продолжит работу с того места, где была остановлена.)
где вопрос?
вопрос простой покажите правельный пример прирывания по таймеру как это записывается на ардуино
ну, как-то так ISR (TIMER2_OVF_vect) {}
вопрос простой покажите правельный пример прирывания по таймеру как это записывается на ардуино
В интернете куча статей по таймерам, спросите у гугла.
я так понимаю там библиотека нужна.
а если вот с таким таймером
enum Prescalers { PRESCALER_1 = 1, PRESCALER_8 = 2, PRESCALER_64 = 3, PRESCALER_256 = 4, PRESCALER_1024 = 5 }; void setup() { uint8_t prescaler = PRESCALER_1024; uint16_t topValue = 65535; pinMode(9, OUTPUT); TCCR1A = 0x40; // Инвертирование пина 9 по сравнению TCCR1B = 0x08 | prescaler; // Установить СТС режим и делитель частоты OCR1A = topValue; // установить TOP равным topValue } void loop() {}то что я находил написано не под Ардуино, у меня скетч в ардуино и переделывать его под С нет возможности
то что я находил написано не под Ардуино, у меня скетч в ардуино и переделывать его под С нет возможности
хватит тупить! http://arduino.ru/Tutorial/Arduino_Interrupts
- No money, not funny! Sonny.
...
- How sad, too bad! Dad.
я так понимаю там библиотека нужна.
Где там?
то что я находил написано не под Ардуино, у меня скетч в ардуино и переделывать его под С нет возможности
Открою страшную тайну: программирование ардуино - это Си с ардуиновскими библиотеками. Таймеры можно точно так же настраивать через регистры (без всяких библиотек), как и для "голых" микроконтроллеров AVR в Atmel Studio.
я так понимаю там библиотека нужна.
а если вот с таким таймером
enum Prescalers { PRESCALER_1 = 1, PRESCALER_8 = 2, PRESCALER_64 = 3, PRESCALER_256 = 4, PRESCALER_1024 = 5 }; void setup() { uint8_t prescaler = PRESCALER_1024; uint16_t topValue = 65535; pinMode(9, OUTPUT); TCCR1A = 0x40; // Инвертирование пина 9 по сравнению TCCR1B = 0x08 | prescaler; // Установить СТС режим и делитель частоты OCR1A = topValue; // установить TOP равным topValue } void loop() {}Почитай здесь http://arduino.ru/forum/programmirovanie/dva-8-mi-segmentnykh-indikatorov?page=2
думаю все поймешь.
спасибо я уже все сделал и нашел нужные комманды под ардуино)
как и хотел получилось без библиотек и в рамках этого кода
Открою страшную тайну: программирование ардуино - это Си с ардуиновскими библиотеками. Таймеры можно точно так же настраивать через регистры (без всяких библиотек), как и для "голых" микроконтроллеров AVR в Atmel Studio.
понятно что можно, но написание отличается, я бы наверное не просил под ардуино, под avr и так знаю
понятно что можно, но написание отличается, я бы наверное не просил под ардуино, под avr и так знаю
Неправда, настройка таймеров через регистры ничем не отличается. Разве что в студии код пишем в main(), а в ардуино в setup() или loop().