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

 
 
> Внешнее прерывание от ножек GPIO на LPC2478
M_Andrey
сообщение Nov 25 2009, 17:36
Сообщение #1


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

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



Пытаюсь запустить внешнее прерывание от ножек GPIO на LPC2478, точнее с P2[15]. Плата LPC2478STK от Olimex - там разведен разъем стандартной клавиатуры PS/2.
Вот кусок кода, но в прерывание он входить вообще не хочет. Клавиатура и ножки GPIO исправны - по опросу все работает без ошибок. Подскажите где у меня неправильно.
CODE
</P><P>void KeyboardCLK(void)
{
static unsigned char data; // Holds the received scan code

LED2SET = 1;
VICADDRESS = 0;
VICINTENCLEAR_bit.EINT3 = 1;

if (IOINTSTATUS_bit.P2INT)
{
if (IO2INTSTATF_bit.P2_15)
{
{
if ( (bitcount < 11) && (bitcount > 2) ) // Bit 3 to 10 is data. Parity bit,
{ // start and stop bits are ignored.
data = (data >> 1);
if (FIO2PIN_bit.P2_14) data = data | 0x80; // Store a '1'
}

if (--bitcount == 0)
{ // All bits received
decode(data);
bitcount = 11;
}
}
}
IO2INTCLR_bit.P2_15 = 1;
}

LED2CLR = 1;
}

void init_keyboard_ps2(void)
{
// 33222222 22221111 11111100 00000000
// 10987654 32109876 54321098 76543210
//FIOnDIR = BIN32(00000000,00000000,00000000,00000000);
FIO2DIR &= BIN32(11111111,11111111,00111111,11111111); //0 - input / 1 - output
FIO2MASK &= BIN32(11111111,11111111,00111111,11111111); //0 - read/write / 1 - no effect

PINSEL4 &= BIN32(00001111,11111111,11111111,11111111); //GPIO
PINMODE4 &= BIN32(00001111,11111111,11111111,11111111); //pull-up resistor enabled.

IO2INTENR &= BIN32(11111111,11111111,00111111,11111111);
IO2INTENF = ( IO2INTENF & BIN32(11111111,11111111,00111111,11111111) ) | BIN32(00000000,00000000,10000000,00000000);
IO2INTCLR_bit.P2_15 = 1;

PCLKSEL1_bit.PCLK_GPIO = 1;

VIC_SetVectoredIRQ(KeyboardCLK,0,VIC_EINT3);
VICINTENABLE |= 1UL << VIC_EINT3;

bitcount = 11;
}
Причина редактирования: Уменьшение видимого размера цитаты исходника.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:08
Рейтинг@Mail.ru


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