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

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

Обработка прерывания не правильная. Возьмите пример от IAR и обрежте его

Отправлено misyachniy 10 декабря 2008 г. 16:58
В ответ на: C вашего разрешения повторюсь. Вопрос не решен (USART0 AT91SAM7S) отправлено <font color=gray>sag1979</font> 10 декабря 2008 г. 15:31

Во функция принимает байт и отсылает его обратно


__ramfunc void Usart_c_irq_handler(void)
{
AT91PS_USART USART_pt = AT91C_BASE_US0;
unsigned int status;
//* get Usart status register
status = USART_pt->US_CSR;
if ( status & AT91C_US_RXRDY){
//* Get byte and send
AT91F_US_PutChar (USART_pt, AT91F_US_GetChar(USART_pt));
}

if ( status & AT91C_US_OVRE) {
//* clear US_RXRDY
AT91F_US_GetChar(USART_pt);
AT91F_US_PutChar (USART_pt, 'O');
}

//* Check error
if ( status & AT91C_US_PARE) {
AT91F_US_PutChar (USART_pt, 'P');
}

if ( status & AT91C_US_FRAME) {
AT91F_US_PutChar (USART_pt, 'F');
}

if ( status & AT91C_US_TIMEOUT){
USART_pt->US_CR = AT91C_US_STTTO;
AT91F_US_PutChar (USART_pt, 'T');
}

//* Reset the satus bit
USART_pt->US_CR = AT91C_US_RSTSTA;
}



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

Ответы


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

Сообщение:

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

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

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

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