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

 
 
> PCINT для ATtiny2313., Ломаю голову.
kv_addr
сообщение Jan 14 2006, 14:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279



Имеется некоторое устройство на ATtiny2313. Для обработки данных, получаемых с двух линий порта B (PB0 и PB1), используется прерывание PCINT (Pin-Change Interruption). Происходящие на этих линиях события взаимонезависимы и поэтому возможна ситуация, когда во время обработки прерывания, например, от PB0 произойдет изменение на PB1. Это событие также должно быть обработано и никоим образом не потеряно. Время обработки прерывания от каждой из линий значительно меньше минимального интервала между событиями на этой линии, но события на другой могут попадать во временной интервал обработки прерывания от первой. Вполне допустимо как отложить обработку прерывания от второй до завершения обработки от первой, так и прервать обработку от первой для обработки от второй и потом продолжить обработку от первой, но в конечном счете оба прерывания должны быть обработаны.

Для того, чтобы решить эту задачу, мне не совсем понятно, как можно распорядиться с флагами I в регистре SREG и PCIF в регистре EIFR.

В момент изменения состояния одной из линий взводятся оба флага и происходит обработка прерывания по вектору PCINT по возврату из которой оба флага сбрасываются. Если в это время происходит событие на другой линии, то, по идее, оно будет проигнорировано, поскольку флаг PCIF у них общий.

1. Если в пп обработки прерывания сбросить флаг PCIF, то второй линией он будет снова взведен, но будет сброшен по возврату и отсроченной обработки прерывания не произойдет. Верно ли я понимаю? Можно ли все же реализовать ОТСРОЧЕННУЮ обработку прерывания, возникшего во время прерывания?

2. Если же сбросить оба флага, то, как я понимаю, второе прерывание прервет первое, будет отработано и снова вернется в первое. Вроде-бы так. Но нет ли здесь какого-либо подвоха?

Если можно, проясните ситуацию с этим Pin-Change.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:19
Рейтинг@Mail.ru


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