Hey,
If i read the errata sheet you must program VPBDIV as the same value of
EXTMODE. So i think that you must code :
SCB_VPBDIV = 0x00; // --- workaround for EXTINT2 bug
SCB_EXTMODE = 0x04; // set mode for EINT2
SCB_VPBDIV = 0x04; // !!!!!!! --- (!!!!!! to program EXTMODE !!!!!)
SCB_VPBDIV = 0x01; // --- end workaround (!!!!!! true value of VPBDIV
!!!!!!!)
----- Original Message -----
From: "fbpmania" <pmania@...>
To: <lpc2000@yahoogroups.com>
Sent: Wednesday, September 07, 2005 4:05 PM
Subject: [lpc2000] Re: EINT2 Problems on LPC2124
Hey Gilles Faurie,
i checked the Errata sheet and build in the workaround.
I´ve modified my Code to this:
void init_interrupts(void){
SCB_MEMMAP = 1; //interrupt vectors reside in flash
toggle_led(28);toggle_led(28);toggle_led(28); // Function Start -
Blink 3 times
VICProtection = 0; //No Protection
VICIntEnClear = 0xffffffff; //Clear all Interrupts
SCB_VPBDIV = 0x00; // --- workaround for EXTINT2 bug
SCB_EXTMODE = 0x04; // set mode for EINT2
SCB_VPBDIV = 0x02; // ---
SCB_VPBDIV = 0x01; // --- end workaround
SCB_EXTINT = 0x04; // clear INT flags
VICIntSelect = 0x00000000; // EINT2 is IRQ
toggle_led(25);
VICIntEnable = (1<<VIC_EINT2); // Enable EINT2
VICVectAddr0 = (unsigned long)EINT2_ISR;
VICVectCntl0 = (1<<5) | (1<<VIC_EINT2);
toggle_led(25);
enableIRQ();
toggle_led(25);
}
EnableIRQ comes from the armVIC.h , which is in the example dir of
WinARM.
My problem is, that the System hangs now on the execution of
"enableIRQ()".
Could it be, that there are some Problems with my Startup Code ?
I use the Startupcode from the UART Example included in WinARM.
Greetings
Yahoo! Groups LinksMessage
Re: [lpc2000] Re: EINT2 Problems on LPC2124
2005-09-09 by Gilles FAURIE
Attachments
- No local attachments were found for this message.