Страница 1 из 1

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

Добавлено: Чт мар 20, 2014 09:09:10
kelod
начал изучать прерывания, контроллер atmega8, пытаюсь сделать тахометр, для этого использую таймер0 и int0, таймер запускается, работает, но прерывания возникают только по переполнению, а как мне вызывать прерывания когда на int0 приходит импульс или вернее при приходе импульса перезапускать таймер.
возможно я что то не то делаю, по сути мне нужно измерять время между двумя импульсами(передними фронтами)

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

Добавлено: Чт мар 20, 2014 09:33:16
akl
По прерыванию INT0 считываете значение таймера0. Но, для этих целей служит специальная фишка ICP называется.

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

Добавлено: Чт мар 20, 2014 09:37:34
BOB51
Использовать блок "захвата" с последующим программным сбросом содержимого счетных регистров (периодомер) или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)

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

Добавлено: Чт мар 20, 2014 14:09:28
DJ_Kiridza
или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)
я так и делал, в соседней ветке дал ссылку на описание.

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

Добавлено: Чт мар 20, 2014 14:24:04
akl
Здесь (сообщение 452056 и 451541 с небольшим описанием) всё делается на одном таймере Т1. :)

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

Добавлено: Чт мар 20, 2014 14:25:55
BOB51
Только вот у меги8/8А есть еррата, перевод которой звучит следующим образом:
2. При изменении (записи/перезаписи) содержимого счетных регистров для таймера,
; работающего в асинхронном режиме могут быть потеряны вызовы прерываний
; от данного таймера.
; Как мера устранения рекомендуется обязательная проверка содержимого таймера
; на границы подхода и/или текущее состояние соответствующее вызывающей ступор
; величине 0xFF или 0x00 перед записью в (асинхронный) регистр управления
; таймера(TCCRx), (асинхронный) счетный регистр (TCNTx), или
; (асинхронный) регистр Сравнения (OCRx).
:wink:
И 48/88/168 это не совсем 8/8А МК... :)

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

Добавлено: Чт мар 20, 2014 15:43:53
akl
1. Таймер Т1 в mega8 (48/88/168) не поддерживает асинхронного режима.
2. По моей ссылке речь вообще идёт о ATtiny2313.
:wink: