_basile (25.01.2006 14:22, просмотров: 563)
Проблема с записью в регистр EXTMODE. Камень LPC2214. Нужно инициализировать прерывание по падающему фронту на P0.30.
Прерывание по уровню работает нормально!!!
-----------------------------
Код:
void InitInterruptEINT3()
{
VICIntEnClear = 0xFFFFFFFF;
EXTMODE = 0x08;/*EINT3 по фронту. С этой строкой - зависание, даже если дальше все закомментировать */
PINSEL1 &= 0xCFFFFFFF; // Switch P0.30 to EINT3
PINSEL1 |= 0x20000000;
VICIntSelect &= 0xFFFDFFFF;
VICVectAddr0 = (unsigned int)&MouseInterrupt;
VICVectCntl0 = 0x20 | VIC_EINT3;
VICIntEnable = 0x00020000;
}
--------------
Без EXTMODE = 0x08; происходят и нормально обрабатываются прерывания по уровню. Проц находится в System mode.
Оставить по уровню и выкручиваться - не предлагать.