Помогите с прерыванием по таймеру

vadim.tusur
Offline
Зарегистрирован: 04.01.2014

Доброго времени суток, форумчане!

Я уже просмотрел несколько тем по таймерам и к Евстифееву тоже заглянул. Все равно, без Вашей помощи, чувствую, не обойтись. Изучал микропроцессоры более 20 лет назад в институте, и так случилось - больше с ними не сталкивался. Пытаюсь разобраться, но мозги скрипят - заржавели :)

У меня задача сделать световую сигнализацию для автобота. Фары, стоп сигналы и габариты легко реализуются через демультиплексор 74HC595. А чтобы заставить моргать светодиод необходимо прерывание по таймеру.

Объясните пожалуйста алгоритм действий с таймером платы UNO (каким-нибудь одним): в какие регистры и что писать, чтобы период моргания был равен 1 секунде со скважностью 2.

Буду очень признателен за комментарии к коду; С+ только начал изучать - в институте давали Паскаль и ассемблер.

Надеюсь готовое решение с пояснениями поможет "вспомнить всё" :)

P.S. пока пытался разобраться, пришла мысль использовать моргающий светодиод, но в нашем городе я не нашел их магазинах, да уже и "закусился" на таймер.

Заранее благодарен за любую помощь!

maksim
Offline
Зарегистрирован: 12.02.2012

Не нужно вам прерывание по таймеру. Изучайте Программирование. А в частности millis() и Мигаем светодиодом без delay().

vadim.tusur
Offline
Зарегистрирован: 04.01.2014

maksim, как вариант - да!

Но я бы не хотел перегружать loop. Планируется еще навешать датчиков с логикой обработки данных, управление двигателями, боюсь к концу код будет трудночитаем.

В конце концов, правильнее всего будет взять мигающий желтый светодиод - и вообще ничего делать не нужно. Я так и сделаю, но хочется разобраться с таймером, порсто уже покоя не дает, да и понадобится скорее всего для опроса датчиков. Ведь внешних прерываний мало.

maksim
Offline
Зарегистрирован: 12.02.2012

vadim.tusur пишет:

но хочется разобраться с таймером 

Копировать статью Евстафьева и вставить ее сюда... Так разбирайтесь. Сюда стоит уже задавать конкретные вопросы.

vadim.tusur пишет:

Ведь внешних прерываний мало.

Прерывание можно организовать на любой ноге, почитайте про PCINT.

vadim.tusur
Offline
Зарегистрирован: 04.01.2014

maksim пишет:

Копировать статью Евстафьева

Если это не его книга, то дайте ссылку.

maksim
Offline
Зарегистрирован: 12.02.2012

http://easyelectronics.ru/avr-uchebnyj-kurs-tajmery.html

Вроде все понятно и с примерами.

vadim.tusur
Offline
Зарегистрирован: 04.01.2014

Этой статьи не видел, почитаю.
А что, ассемблерные вставки можно делать при программировании, и как?

maksim
Offline
Зарегистрирован: 12.02.2012

http://www.youtube.com/watch?v=y8MbIbPd_Zs

асм-вставки можно тоже писать, погуглите.