реклама на сайте
подробности

 
 
> Не могу "выйти" из прерывания USART. помогите.
Budek
сообщение Jun 22 2009, 15:04
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 132
Регистрация: 17-02-08
Из: Уфа
Пользователь №: 35 116



Господа, помогите, пожалуйста. Начал изучать AT91SAM7X256.
В основном цикле тупо мигаю 1-м светодиодом, в обработчике прерывания USART0 делаю вспышку 2-м.
Так вот что не пойму (бьюсь третий день): при отправке символа с компа в обработчик захожу (2-й светодиод вспыхивает 1 раз, как и положено). Но вот в основную программу не выхожу (вернее из обработчика вроде выхожу, но вот куда, неясно) - "висит", 1-й светодиод не мигает.
инициализирую USART вроде верно:
Код
void init_serial (void)
{
AT91C_BASE_PIOA->PIO_PDR=(1<<0)|(1<<1);
AT91C_BASE_PIOA->PIO_ASR=(1<<0)|(1<<1);
AT91C_BASE_PIOA->PIO_BSR=0;
AT91C_BASE_PMC->PMC_PCER=1<<AT91C_ID_US0;
AT91C_BASE_US0->US_MR=AT91C_US_USMODE_NORMAL|AT91C_US_CLKS_CLOCK|AT91C_US_CHRL_8_BITS|
                                          AT91C_US_NBSTOP_1_BIT;
AT91C_BASE_US0->US_BRGR=MCK/(16*115200);
AT91C_BASE_US0->US_TTGR=0;
AT91C_BASE_US0->US_CR=AT91C_US_RXEN|AT91C_US_TXEN;
AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_US0, 1,
                           AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
AT91C_BASE_US0->US_IER=(1<<0);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US0);
}

такое ощущение, что микроконтроллер "не знает", по какому адресу идти, выходя из обработчика. помогает только ресет.
Спасибо заранее всем.
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 14:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016