You need to clear the external interrupt (even with level sensitive
interrupts) with like in the following code:
void eint_ISR( void )
{
vParTestToggleLED( 0 );
EXTINT = 1; /* clear EINT0 */
VICVectAddr = 0; /* acknowledge interrupt */
}
Richard Duits
frumbub wrote:
> Hello
>
> I am having problems with the EINT0 interrupt.
> I have searched the posts and tried all suggested sollutions, but my
> problem persists.
>
> The problem is that the system stays in the ISR like in an infinite loop.
>
> Code:
> void eint_ISR( void )
> {
> vParTestToggleLED( 0 );
> VICVectAddr = ringCLEAR_VIC_INTERRUPT;
> }
> And thats it... the vParTestToggleLED( 0 ) function just toggles a led
> one time, that is verified, but when EINT0 is triggered if flashes
> endlessly and the other processes are blocked.
>
> The EINT0 setp code:
>
> VICIntSelect &= ~( RING_VIC_CHANNEL_BIT );
> VICIntEnable |= RING_VIC_CHANNEL_BIT;
> VICVectAddr2 = ( portLONG ) vRING_ISR;
> VICVectCntl2 = RING_VIC_ENABLE | RING_VIC_CHANNEL;
>
> /* Enable EINT0 interrupt. */
> PCB_PINSEL1 |= EINT0_ENABLE;
>
> Please help me out...
>
>
>
> ------------------------------------------------------------------------
> *Yahoo! Groups Links*
>
> * To visit your group on the web, go to:
> http://groups.yahoo.com/group/lpc2000/
>
> * To unsubscribe from this group, send an email to:
> lpc2000-unsubscribe@yahoogroups.com
> <mailto:lpc2000-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>
> * Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service <http://docs.yahoo.com/info/terms/>.
>
>Message
Re: [lpc2000] EINT0 on LPC2106
2005-05-09 by Richard Duits
Attachments
- No local attachments were found for this message.