free 8051 Microcontroller Projects AVR PIC Microcontroller Projects Tutorials Ebooks Libraries, interfacing tutorials, lcd tutorial, stepper motor, dc motor 8051 assembly language programming electronics and communication ECE CSE pdf ebooks library BE final year project ideas Embedded systems

 
8051 microcontroller 8051 microcontroller
Forums

Moderators: Ajay, shyam, zetaf
Author Post
viswesvaran
Fri Oct 10 2008, 10:27AM
 User Offline
Registered Member #9071
Joined: Wed Jul 16 2008, 02:27AM

Posts: 5
Thanked 0 times in 0 posts
HI ,

I am in need of sample program for any external event occur and simple ISR program in ARM7 LPC2148

Back to top


shyam
Fri Oct 10 2008, 11:38AM

 User Offline

Registered Member #2984
Joined: Mon Aug 06 2007, 11:33AM

Posts: 725
Thanked 108 times in 104 posts
CODE:
volatile DWORD eint1_counter;

/*********************************************************************
********
** Function name:               EINT1_Handler
**
** Descriptions:                external INT handler
**
** parameters:                  None
** Returned value:              None
**
********************************************************************
*********/

void EINT1_Handler (void) __irq
{
    EXTINT = EINT1;             /* clear interrupt */
               
    IENABLE;                    /* handles nested interrupt */
    eint1_counter++;
    if ( eint1_counter & 0x01 )     /* alternate the LED display */
    {
        IOSET1 = 0x000F0000;    /* turn off P1.20~23 */ 
        IOCLR1 = 0x00F00000;    /* turn on P1.16~19 */
    }
    else
    {
        IOSET1 = 0x00F00000;    /* turn on P1.20~23 */ 
        IOCLR1 = 0x000F0000;    /* turn off P1.16~19 */
    }
    IDISABLE;
    VICVectAddr = 0;            /* Acknowledge Interrupt */
}

/*****************************************************************
************
** Function name:               EINTInit
**
** Descriptions:                Initialize external interrupt pin and
**                              install interrupt handler
**
** parameters:                  None
** Returned value:              true or false, return false if the interrupt
**                              handler can't be installed to the VIC table.
**
*****************************************************************
************/

DWORD EINTInit( void )
{
    PINSEL0 = 0x20000000;               /* set P0.14 as EINT1 */
    PINSEL1 = 0x00000000;               /* P1.16~23 GPIO output */
    SCS = 0;                            /* set GPIOx to use regular I/O */
    IODIR1 = 0x00FF0000;                /* P1.16..23 defined as Outputs */
    IOCLR1 = 0x00FF0000;                /* turn off LEDs */

    EXTMODE = EINT1_EDGE;               /* INT1 edge trigger */
    EXTPOLAR = 0;                       /* INT1 is falling edge by default */
     
    if ( install_irq( EINT1_INT, (void *)EINT1_Handler ) == FALSE )
    {
        return (FALSE);
    }
       
    return( TRUE );
}

/*****************************************************************
*************
**                            End Of File
******************************************************************
************/


 


it wud have been better if u wud have mentioned the compiler u r using!


[ Edited Fri Oct 10 2008, 12:02PM ]

lProgress is not made by early risers or hard workers, but by LAZY people, trying to find easier ways to do the same........
Back to top


 

Jump:     Back to top

Syndicate this thread: rss 0.92 Syndicate this thread: rss 2.0 Syndicate this thread: RDF
Powered by e107 Forum System

8051 Microcontroller Projects 8051 AVR tutorials PIC microcontroller, 8051 assembly language programming electronics and communication ECE CSE pdf ebooks library BE final year project ideas Embedded systems