|
Прерывание PIO AT91SAM7A3 |
|
|
|
Sep 17 2008, 14:21
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 24-08-07
Пользователь №: 30 034

|
Помогите разобраться, что не так. Хочу разобраться с прерываниями по изменению уровня на PIOA, прерывание должно наступать по нажатию джойстика. Код брал из примера,немного переработав для удобства. Не входит в прерывание и все тут. Код void main (void) { AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA ); AT91F_PIO_CfgOutput( AT91C_BASE_PIOA, LED_MASK ); AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED_MASK ); AT91F_PIO_CfgInput(AT91C_BASE_PIOA, SW3_MASK | SW4_MASK);
AT91F_AIC_ConfigureIt ( pAic, AT91C_ID_PIOA, PIO_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, pio_c_irq_handler); AT91F_PIO_InterruptEnable(AT91C_BASE_PIOA,SW4_MASK); //* set the interrupt by software AT91F_AIC_EnableIt (pAic, AT91C_ID_PIOA);
for (;;) {} }
// обработчик
void pio_c_irq_handler ( void ) { int dummy; count_int_pio++;
AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); delay_t (2000000); AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); delay_t (2000000); dummy =AT91C_BASE_PIOA->PIO_ISR;
}
|
|
|
|
|
 |
Ответов
|
Sep 23 2008, 08:25
|
Участник

Группа: Участник
Сообщений: 23
Регистрация: 24-08-07
Пользователь №: 30 034

|
В состоянии покоя на входах джойстика уровни "1" , но эти уровни от встроенных Pull-up резисторов в котроллер.
При нажатии на джойстик происходит замыкание входа на "землю".
|
|
|
|
|
Sep 23 2008, 09:29
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Balaganoff @ Sep 23 2008, 11:25)  В состоянии покоя на входах джойстика уровни "1" , но эти уровни от встроенных Pull-up резисторов в котроллер. А какого поведения вы ожидаете от контроллера после AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_PIOA,PIO_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, pio_c_irq_handler);?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
Balaganoff Прерывание PIO AT91SAM7A3 Sep 17 2008, 14:21 Сергей Борщ Цитата(Balaganoff @ Sep 17 2008, 17:21) К... Sep 17 2008, 15:23 VSt& можно просмотреть ассемблерный обработчик, начиная... Sep 18 2008, 02:43 aaarrr Цитата(VSt& @ Sep 18 2008, 06:43) AT9... Sep 18 2008, 07:52 Balaganoff Не сердитесь, если что не так, я хочу разобраться.... Sep 18 2008, 08:52 Сергей Борщ Ну вот. Зная компилятор можно продолжать.Цитата(Ba... Sep 18 2008, 09:30 Balaganoff по Адрессу
irgvec :
0x18 содержится IRQ_Handler_... Sep 18 2008, 15:05 aaarrr Цитата(Balaganoff @ Sep 18 2008, 19:05) п... Sep 18 2008, 15:36 Сергей Борщ Цитата(Balaganoff @ Sep 18 2008, 18:05) А... Sep 18 2008, 15:49 Balaganoff Подключил <intrinsics.h> и вставил
функцию... Sep 19 2008, 13:39 Сергей Борщ Цитата(Balaganoff @ Sep 19 2008, 16:39) П... Sep 19 2008, 14:30 Balaganoff При том же исходном тесте , если комментирую в осн... Sep 22 2008, 12:56 Сергей Борщ Цитата(Balaganoff @ Sep 22 2008, 15:56) П... Sep 22 2008, 13:56 Balaganoff Прерывания же от PIO считаются внутренними, а ... Sep 23 2008, 12:02 Сергей Борщ Цитата(Balaganoff @ Sep 23 2008, 15:02) П... Sep 23 2008, 12:26 Balaganoff Ух! Все заработало. Сразу хочу сказать большое... Sep 23 2008, 14:53 aaarrr Цитата(Balaganoff @ Sep 23 2008, 18:53) В... Sep 23 2008, 15:01
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|