Arduino Uno Таймер

Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить
Transistor
Прорезались зубы
Сообщения: 209
Зарегистрирован: Пт авг 27, 2010 18:05:09

Arduino Uno Таймер

Сообщение Transistor »

Привет "РА."-Кот :). Необходима ваша помощь. Хочу использовать для одного из проектов внутренний таймер с прерыванием, без использования выходов МК к которым он может быть подключен.
Выход 5 и 6: timer0
Выход 9 и 10:timer1
Выход 11 и 3:timer2
Данные выводи МК будут использоваться в качестве бинарных входов, а некоторые в качестве выходов. Как настроить таймер без привязки к выводам МК (ШИМ на выходе МК, тд. мне не нужен)?
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: Arduino Uno Таймер

Сообщение khomych »

Transistor
Прорезались зубы
Сообщения: 209
Зарегистрирован: Пт авг 27, 2010 18:05:09

Re: Arduino Uno Таймер

Сообщение Transistor »

Не понял, можно ли отдельно использовать вывод(Выход) МК от таймера или нет, что бы они не влияли друг на друга.
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino Uno Таймер

Сообщение veso74 »

В документации микроконтроллера см. внутреннюю пр. схему выбранного таймера. Введите вход с клока, выберите прескалера. Что произойдет через время таймера (например, поднятие флага), следите за прерываниями и не переходя к выводам (для Вашей другой функции).

Из пдф-а: The Timer/Counter can be clocked by an internal or an external clock source.
---
Я бы начал тесты с blink по таймера, сначала с готовой программы. Поменяйте на другое время, поменяйте тип исполняемой функции...

Internal Timers of Arduino
https://create.arduino.cc/projecthub/Ma ... ino-58f6c9
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15539
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Arduino Uno Таймер

Сообщение BOB51 »

По умолчанию, если не используются функции analogWrite() все выводы могут использоваться как цифровые.
Использование таймера "в своих нуждах" требует внимания только в отношении функций системного времени
millis()
micros()
delay()
да еще если tone() в программе использовать намечается.
Дополнительно имеется возможность использовать Т0 в части прерывания по совпадению для OCR0A (только для МК, имеющих таковой - к примеру 186 и 328 мегах) без дополнительных ограничений.
8)
Transistor
Прорезались зубы
Сообщения: 209
Зарегистрирован: Пт авг 27, 2010 18:05:09

Re: Arduino Uno Таймер

Сообщение Transistor »

Да это уже немного ближе к тому, что я хочу.
То есть после срабатывания таймера по звортному отсчету функция изменяет некоторую переменную относящуюся к основной части программы без изменения состояний выходов мк.
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: Arduino Uno Таймер

Сообщение khomych »

только что протестил библиотеку от alexgyver. подключил к проекту, над которым работаю, все ОК.

Код: Выделить всё

 

#include "GyverTimers.h"


Timer1.setFrequency(30);               // Высокоточный таймер 1 для первого прерывания, частота - 3 Герца
  //Timer1.setPeriod(333333);           // то же самое! Частота 3 Гц это период 333 333 микросекунд
  //Timer1.setFrequencyFloat(4.22);     // Если нужна дробная частота в Гц 
  Timer1.enableISR(CHANNEL_B);

// Прерывание А таймера 1
ISR(TIMER1_B) {  // пишем  в сериал
  Serial.println(millis());
}



Этот код работает. Посмотрел логическим анализатором на 10-м пине - никаких действий. Проверил работу пина в других функциях - никаких нареканий
veso74
Поставщик валерьянки для Кота
Сообщения: 1902
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: Arduino Uno Таймер

Сообщение veso74 »

khomych, было бы хорошо делать только быстрые собития (напр. поднимать флаг, считать count и т. д.) во время переполнения прерывания таймера, а медленные события (как Serial.print()): выполнения напр. по флагу в теле программы (loop). Иначе можете пропустить собитие.
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: Arduino Uno Таймер

Сообщение khomych »

Я в курсе. это просто для теста, что запускается прерывание
Ответить

Вернуться в «Arduino»