реклама на сайте
подробности

 
 
> ATmega timer2 в асинхронном режиме, что-то я слегка запутался...
rx3apf
сообщение Dec 20 2007, 23:59
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Долго воевал с потерей прерываний от переполнения TCNT2 (MEGA168), работающим от часового кварца в асинхронном режиме, пока не сообразил посмотреть эрраты. Да, при модификации регистров таймера в момент переполнения именно такая ситуация как раз и возможна (а я как раз энергично дергаю OCR2). Но какой же выход предлагает Atmel - проверять TCNT2 на FF перед любой модификацией регистров. Сделал. Стало еще хуже. Стал выяснять, почему. Получается странная картина - флаг TOV2 устанавливается через 1/32768 sec после момента перехода TCNT2 FF->00, и, если я терпеливо жду, когда TCNT2 выйдет из состояния FF, то как раз попадаю в момент, когда таймер стал равен 00, а TOV2 еще не установился. Пишу в OCR2 - и _гарантированно_ теряю прерывание переполнения ! Посмотрел последнюю версию даташита - они предлагают все тот же способ обхода проблемы, контролем на FF. Ну и что делать ? Ждать FF->00, а потом появления TOV2, и лишь потом трогать регистры ?

Это я не понимаю, как оно работает, или разработчики сами не понимают, как обойти столь изощренные грабли ?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 18:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016