работа с таймером в atmega8

Обсуждаем контроллеры компании Atmel.
Ответить
Опытный кот
Сообщения: 884
Зарегистрирован: Пн июл 08, 2013 22:59:45

Сообщение kelod »

начал изучать прерывания, контроллер atmega8, пытаюсь сделать тахометр, для этого использую таймер0 и int0, таймер запускается, работает, но прерывания возникают только по переполнению, а как мне вызывать прерывания когда на int0 приходит импульс или вернее при приходе импульса перезапускать таймер.
возможно я что то не то делаю, по сути мне нужно измерять время между двумя импульсами(передними фронтами)
Реклама
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

По прерыванию INT0 считываете значение таймера0. Но, для этих целей служит специальная фишка ICP называется.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15753
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Использовать блок "захвата" с последующим программным сбросом содержимого счетных регистров (периодомер) или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)
Мучитель микросхем
Аватара пользователя
Сообщения: 458
Зарегистрирован: Пн дек 13, 2010 13:01:59
Откуда: Украина

Сообщение DJ_Kiridza »

или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)
я так и делал, в соседней ветке дал ссылку на описание.
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Здесь (сообщение 452056 и 451541 с небольшим описанием) всё делается на одном таймере Т1. :)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15753
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Только вот у меги8/8А есть еррата, перевод которой звучит следующим образом:
2. При изменении (записи/перезаписи) содержимого счетных регистров для таймера,
; работающего в асинхронном режиме могут быть потеряны вызовы прерываний
; от данного таймера.
; Как мера устранения рекомендуется обязательная проверка содержимого таймера
; на границы подхода и/или текущее состояние соответствующее вызывающей ступор
; величине 0xFF или 0x00 перед записью в (асинхронный) регистр управления
; таймера(TCCRx), (асинхронный) счетный регистр (TCNTx), или
; (асинхронный) регистр Сравнения (OCRx).
:wink:
И 48/88/168 это не совсем 8/8А МК... :)
Реклама
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

1. Таймер Т1 в mega8 (48/88/168) не поддерживает асинхронного режима.
2. По моей ссылке речь вообще идёт о ATtiny2313.
:wink:
Ответить

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