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

 
 
> LPC2478. Прерывания GPIO совместно с LCD.
Real_Bastard
сообщение May 1 2011, 21:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 7-11-06
Из: Санкт-Петербург
Пользователь №: 22 041



Есть LPC2478 с подключенным TFT. Хочется запустить прерывание от GPIO. Но LCD контроллер постоянно вызывает мое прерывание!!!
Note: EINT3 channel is shared with GPIO interrupts, а ножка EINT3 используется LCD контроллером. (P2[13]/EINT3/LCDVD[5]/LCDVD[9]/LCDVD[19]/MCIDAT3/I2STX_SDA) . Т.е. как только я разрешаю прерывания от EINT3 оно срабатывает от посылки на TFT. Запуска прерывания от GPIO без разрешения прерываний от EINT3 не происходит. Что я делаю не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
M_Andrey
сообщение May 2 2011, 15:04
Сообщение #2


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

Группа: Свой
Сообщений: 158
Регистрация: 15-10-07
Из: Й-Ола
Пользователь №: 31 376



Как-то так:

CODE
void GPIOINT(void)


{
VICADDRESS = 0;
if (IOINTSTATUS_bit.P0INT)
{
if (IO0INTSTATF_bit.P0_9)
{
//Falling edge
}
if (IO0INTSTATR_bit.P0_9)
{
//Rising edge
}
IO0INTCLR_bit.P0_9 = 1;
}
else
{
EXTINT = 0x08;
}
}

void initgpioint(void)
{
IO0INTENF_bit.P0_9 = 1; //Falling edge
IO0INTENR_bit.P0_9 = 1; //Rising edge
IO0INTCLR_bit.P0_9 = 1; //clears any interrupts
VICINTENCLEAR_bit.EINT3 = 1;
EXTINT = 0x08; //clears the corresponding bits
EXTMODE = 0;
VIC_SetVectoredIRQ(GPIOINT, 5, VIC_EINT3);
VICINTENABLE |= 1UL << VIC_EINT3;
}



Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 18th August 2025 - 15:12
Рейтинг@Mail.ru


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