|
Выход после Sleep в режиме Idle |
|
|
|
 |
Ответов
|
Sep 28 2005, 08:48
|
Местный
  
Группа: Свой
Сообщений: 298
Регистрация: 29-08-05
Пользователь №: 8 064

|
Цитата(dinam @ Sep 28 2005, 11:33) Почему без прерывания? Я имел ввиду, как сделать прерывания, реализованные например как в PICах. Хочу минимальное время реакции на прерывание -> задаю чтобы перехода на вектор прервания не было, а программа продолжала выполняться дальше, начиная со следующей команы после Sleep. А с переходом по вектору прерывания у меня сейчас нормально работает. Но так теряется куча тактов драгоценного времени. Что-то совсем запутанно. У пиков вектор события прерывания один. Если на него не ходить то все обработчики прерывания автоматом игнорируются. У AVR для каждого прерывания свой адрес по которому стоит переход на обработчик прерывания. Если вы не хотите обрабатывать прерывание - запретите его. Может я что не понял, подробнее плиз...  А если Вас смущает то что возврат занимает "драгоценного время", то поставьте вместо JMP "Обработчик прерывания" reti. А что касается быстродействия то 4 такта пика - 1 такт AVR.
|
|
|
|
|
Sep 28 2005, 13:15
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(dinam @ Sep 28 2005, 12:11) Цитата(Karl @ Sep 28 2005, 16:02) Можешь вместо перехода на подпограмму обработки прерывания сразу написать reti. Быстрее никак. Понятно, спасибо. Ну, можно ещё анализировать флаг вручную Код while: sbis interrupt_flags,interest_flag rjmp while ;interrupt service ... ;interrupt flag clear Съэкономишь 4 такта в самом худшем случае
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|