Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.05.2010, 21:58
|
|
Частый гость
Регистрация: 08.09.2009
Сообщений: 19
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Проблема с прерыванием
Привет, у меня возникла проблема при работе с прирыванием. В прерывание уходит только один раз, при дальнейших попытках не уходит. Прога для PIC16F84A.
ссылка на программу: http://rghost.ru/1730115
|
|
|
|
27.05.2010, 22:36
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: проблема с прерыванием
Да у вас там со всем проблема (привет Корабельникову!) ![Рот до ушей](images/smilies/icon_doushei.gif)
В прерывании нет сохранения контекста и нет проверки на источник прерывания, BANKSEL INTCON - вообще пипец, догадайся мол сама какой банк выставлять. Дальше уже не смотрел.
|
|
|
|
27.05.2010, 22:55
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Проблема с прерыванием
Ахтунг ![Мистер Грин](images/smilies/icon_smilegreen.gif)
INTCON доступен в любом банке.
Последний раз редактировалось realid; 27.05.2010 в 22:59.
|
|
|
|
27.05.2010, 23:02
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: проблема с прерыванием
Сообщение от st_1
|
В прерывании нет сохранения контекста
|
Если в прерывании нет инструкции изменяющих WREG, STATUS, то контекст можно не сохранять
PS. Корабельников - зло
|
|
|
|
27.05.2010, 23:11
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Проблема с прерыванием
Сообщение от realid
|
INTCON доступен в любом банке.
|
Прально! Надеятся на совесть МПЛАБа? А следом идёт очистка таймера и портов.
Гыыы. ![Рот до ушей](images/smilies/icon_doushei.gif)
Разрешить прерывания, а потом настраивать порты. ![Шокирован](images/smilies/icon_eek.gif) Первое и единственное прерывание.
Последний раз редактировалось st_1; 27.05.2010 в 23:19.
|
|
|
|
27.05.2010, 23:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
|
Re: Проблема с прерыванием
Сообщение от st_1
|
BANKSEL INTCON - вообще пипец, догадайся мол сама какой банк выставлять
|
вообще-то это стандартная конструкция МП-АСМа. Он правильно выставит биты выбора банков. Правда за это приходится платить тем, что там, где можно было бы использовать одну комманду, компилятор всегда ставит 2.
__________________
misterdi<@>i.ua
|
|
|
|
27.05.2010, 23:33
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Проблема с прерыванием
INTCON доступен в любом банке - какой банк выставит МПЛАБ? Может и правильно, но сама формулировка неверна, она не однозначна.
|
|
|
|
27.05.2010, 23:34
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Проблема с прерыванием
Сообщение от MisterDi
|
вообще-то это стандартная конструкция МП-АСМа. Он правильно выставит биты выбора банков. Правда за это приходится платить тем, что там, где можно было бы использовать одну комманду, компилятор всегда ставит 2.
|
Это понятно, но применительно к INTCON это не верно. Он в обоих банках.
Погонял в симуляторе, прерывание возникает не один раз.
|
|
|
|
27.05.2010, 23:36
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Re: Проблема с прерыванием
|
|
|
|
27.05.2010, 23:52
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Проблема с прерыванием
Сообщение от realid
|
Тут это не важно TRISB по POR 0xFF И повторная установка на вход не изменит ничего.
|
Наверно я сильно постарел и лезу со своими нравоучениями. ![Рот до ушей](images/smilies/icon_doushei.gif)
Всегда придерживаюсь некоторых правил - есть прерывание, сохраняй контекст, сейчас нет изменений, а через пять минут появятся, прерывание разрешать в самую последнюю очередь после всех настроек, недопускать неоднозначных определений и т.д. ...
Извиняюсь если уморил.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:23.
|
|