возможно я что то не то делаю, по сути мне нужно измерять время между двумя импульсами(передними фронтами)
работа с таймером в atmega8
- Сообщения: 884
- Зарегистрирован: Пн июл 08, 2013 22:59:45
начал изучать прерывания, контроллер atmega8, пытаюсь сделать тахометр, для этого использую таймер0 и int0, таймер запускается, работает, но прерывания возникают только по переполнению, а как мне вызывать прерывания когда на int0 приходит импульс или вернее при приходе импульса перезапускать таймер.
возможно я что то не то делаю, по сути мне нужно измерять время между двумя импульсами(передними фронтами)
возможно я что то не то делаю, по сути мне нужно измерять время между двумя импульсами(передними фронтами)
- Реклама
По прерыванию INT0 считываете значение таймера0. Но, для этих целей служит специальная фишка ICP называется.
Использовать блок "захвата" с последующим программным сбросом содержимого счетных регистров (периодомер) или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)
я так и делал, в соседней ветке дал ссылку на описание.или организовать подсчет входных импульсов на одном таймере и генерацию счетного окна на другом (частотомер)
мысли мысли штош вы вйотесь
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
над мойейу головойу
вы там мосга нинайдете
нед там мосга! йа тупойе (БОР)
Здесь (сообщение 452056 и 451541 с небольшим описанием) всё делается на одном таймере Т1. 
- Реклама
Только вот у меги8/8А есть еррата, перевод которой звучит следующим образом:
2. При изменении (записи/перезаписи) содержимого счетных регистров для таймера,
; работающего в асинхронном режиме могут быть потеряны вызовы прерываний
; от данного таймера.
; Как мера устранения рекомендуется обязательная проверка содержимого таймера
; на границы подхода и/или текущее состояние соответствующее вызывающей ступор
; величине 0xFF или 0x00 перед записью в (асинхронный) регистр управления
; таймера(TCCRx), (асинхронный) счетный регистр (TCNTx), или
; (асинхронный) регистр Сравнения (OCRx).

И 48/88/168 это не совсем 8/8А МК...
2. При изменении (записи/перезаписи) содержимого счетных регистров для таймера,
; работающего в асинхронном режиме могут быть потеряны вызовы прерываний
; от данного таймера.
; Как мера устранения рекомендуется обязательная проверка содержимого таймера
; на границы подхода и/или текущее состояние соответствующее вызывающей ступор
; величине 0xFF или 0x00 перед записью в (асинхронный) регистр управления
; таймера(TCCRx), (асинхронный) счетный регистр (TCNTx), или
; (асинхронный) регистр Сравнения (OCRx).
И 48/88/168 это не совсем 8/8А МК...
1. Таймер Т1 в mega8 (48/88/168) не поддерживает асинхронного режима.
2. По моей ссылке речь вообще идёт о ATtiny2313.

2. По моей ссылке речь вообще идёт о ATtiny2313.


