Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Для ИАР АВР можно тупо(+)

Отправлено Quasy 18 апреля 2007 г. 14:24
В ответ на: Как в Си выйти из обработчика прерывания правильно, но чтоб I в SREG не устанавливался ? т.е. чтоб не было RETI а RET и естественно из стека все что нужно выковыривалось. отправлено <font color=gray>avr123.nm.ru</font> 18 апреля 2007 г. 13:34

Посмотреть листинг. Заменить 1:1 последние Аллилуйи своими с помощью встроеного ассемблера (asm("XXXX")). Завершить командой ret. Получится, правда, лишний невыполняемый код...
Не изменять опции компилятора, а то может код измениться.
Молиться Боженьке чтоб все в основной программе было хорошо.
Самое главное - еще раз подумать: НАДО ЛИ?


Примерно вот так:

280 #pragma vector=TIMER0_OVF_vect

281 __interrupt void RTC(void)
\ RTC:
282 {
///////////////////////////////////////////////////////
// Обработчик
\ 00000000 931A ST -Y,R17
\ 00000002 930A ST -Y,R16
\ 00000004 B71F IN R17,0x3F
283 PORTD++;
\ 00000006 B302 IN R16,0x12
\ 00000008 9503 INC R16
\ 0000000A BB02 OUT 0x12,R16
284 PORTB++;
\ 0000000C B308 IN R16,0x18
\ 0000000E 9503 INC R16
\ 00000010 BB08 OUT 0x18,R16
285 _NOP();
\ 00000012 0000 NOP

//////////////////////////////////////////////////////
// Это самодельные команды

286
287 asm("out 0x3F,R17");
\ 00000014 BF1F out 0x3F,R17
288 asm("ld r16,Y+");
\ 00000016 9109 ld r16,Y+
289 asm("ld r17,Y+");
\ 00000018 9119 ld r17,Y+
290 asm("ret");
\ 0000001A 9508 ret
291 }


//////////////////////////////////////////////////////
// Это родные возвраты. Они как мертвый код.
\ 0000001C BF1F OUT 0x3F,R17
\ 0000001E 9109 LD R16,Y+
\ 00000020 9119 LD R17,Y+
\ 00000022 9518 RETI
292


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 654:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru