|
Замена обработчика прерывания в WinAVR |
|
|
|
Dec 16 2008, 04:23
|

Местный
  
Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249

|
Нужно использовать различные обработчики прерывания в зависимости от случая. Например в начале программы обработчик_пр = функция 1 Код ISR(INT1_vect) { обработчик_пр } а затем где-то по далее необходимо заменить его на обработчик_пр = функция 2 Как это грамотно сделать в WinAVR?
--------------------
Если все, то не я...
|
|
|
|
Ответов
|
Dec 16 2008, 11:24
|
Местный
  
Группа: Участник
Сообщений: 205
Регистрация: 8-03-05
Пользователь №: 3 146

|
А в своем теле функция никакие регистры не использует? Даже r24? ИМХО можно так делать, если вызываемые функции написать на ассемблере (проанализировать листинг) и самостоятельно сохранять регистры. Кстати Ваш ужас реализуется куда короче и с правильным сохранением: Код SYGNAL(SIG_INTERRUPT1){ asm("icall"::"z"(vector_int1); }
|
|
|
|
Сообщений в этой теме
PhX Замена обработчика прерывания в WinAVR Dec 16 2008, 04:23 733259 ИМХО никак, т.к. в AVR адреса векторов фиксированы... Dec 16 2008, 04:35 MrYuran Определить указатель на функцию и поставить его в ... Dec 16 2008, 05:59 PhX Цитата(MrYuran @ Dec 16 2008, 09:59) Опре... Dec 16 2008, 06:13  ReAl Цитата(PhX @ Dec 16 2008, 08:13) Кодint m... Dec 16 2008, 07:49   PhX Цитата(ReAl @ Dec 16 2008, 11:49) Оно, ко... Dec 16 2008, 09:19    defunct Цитата(PhX @ Dec 16 2008, 11:19) Ну хоть ... Dec 20 2008, 01:03 Qwertty Вызов функции по указателю внутри обработчика веде... Dec 16 2008, 08:36 MrYuran Цитата(Qwertty @ Dec 16 2008, 11:36) Вызо... Dec 17 2008, 11:34  _Pasha Цитата(MrYuran @ Dec 17 2008, 15:34) а чт... Dec 17 2008, 11:46   Сергей Борщ Цитата(_Pasha @ Dec 17 2008, 13:46) Не, т... Dec 17 2008, 14:31 _Pasha Векторизация прерываний. Например, int1
Soft_vect... Dec 16 2008, 09:19 _Pasha Цитата(_Pasha @ Dec 16 2008, 13:19) Прост... Dec 16 2008, 09:38 aesok Цитата(_Pasha @ Dec 16 2008, 12:19) Векто... Dec 16 2008, 10:23  _Pasha Цитата(aesok @ Dec 16 2008, 14:23) Компил... Dec 16 2008, 10:48  _Pasha Цитата(aesok @ Dec 16 2008, 14:23) Компил... Dec 16 2008, 18:10 ARV в некоторых случаях можно делать перезапись вектор... Dec 16 2008, 17:04 singlskv Господа, Вы занимаетесь просто какой-то х.р..й ...... Dec 16 2008, 18:44 _Pasha Цитата(singlskv @ Dec 16 2008, 22:44) Гос... Dec 16 2008, 19:50  singlskv Цитата(_Pasha @ Dec 16 2008, 22:50) Т.е. ... Dec 16 2008, 20:03 733259 ЦитатаСправедливости ради, такой подход имеет один... Dec 17 2008, 02:01 _Pasha Цитата(733259 @ Dec 17 2008, 06:01) прави... Dec 17 2008, 10:17  singlskv Цитата(_Pasha @ Dec 17 2008, 13:17) Следо... Dec 17 2008, 11:09  ReAl Цитата(_Pasha @ Dec 17 2008, 12:17) Есть ... Dec 20 2008, 16:00   _Pasha Цитата(ReAl @ Dec 20 2008, 20:00) посмотр... Dec 20 2008, 16:26 Rst7 Не знаю, можно ли все, что я тут напишу, реализова... Dec 17 2008, 07:42 733259 Что Ваш вариант в 20 тактов, что через icall в 21.... Dec 17 2008, 07:55 Rst7 ЦитатаЧто Ваш вариант в 20 тактов, что через icall... Dec 17 2008, 08:19 ReAl Я погонял компиляцию этого дела в разных режимах.
... Dec 20 2008, 16:34 _Pasha Цитата(ReAl @ Dec 20 2008, 20:34) что даё... Dec 20 2008, 16:49
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|