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

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

В атмеге8 под WINAVR не вызываются прерывания от USART RXC, если его объявить как extern "C"{void USARTRXCvect(void) _attribute_((interrupt));}. ISR(USARTRXCvect). Вызываются нормально. В чем дело? (+)

Отправлено igor_u 02 октября 2007 г. 12:23


Вот код для
extern "C"{
void USART_RXC_vect(void) __attribute__((interrupt));
void USART_RXC_vect(void)
{
_delay_ms(1);
}

sei
push r1
push r0
in r0, 0x3f ; 63
push r0
eor r1, r1
push r24
push r25
ldi r24, 0x66 ; 102
ldi r25, 0x0E ; 14
sbiw r24, 0x01 ; 1
brne .-4 ; 0x210 <__vector_11+0x14>
pop r25
pop r24
pop r0
out 0x3f, r0 ; 63
pop r0
pop r1
reti

Вот код для
ISR(USART_RXC_vect)
{
_delay_ms(1);
}
push r1
push r0
in r0, 0x3f ; 63
push r0
eor r1, r1
push r24
push r25
ldi r24, 0x66 ; 102
ldi r25, 0x0E ; 14
sbiw r24, 0x01 ; 1
brne .-4 ; 0x20e <__vector_11+0x12>
pop r25
pop r24
pop r0
out 0x3f, r0 ; 63
pop r0
pop r1
reti



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

Ответы


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

Сообщение:

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

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

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

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