This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Interrupt Service Routine is not called in LPC2148

Sir,I have written a this code below to run a VGA from LPC2148 but interupt service routine is not called can u suggest a solution
I have also edited startup file but it wont work

#include <lpc214x.h>
#include "clk.h"

int vcount=0,video=0;


void initPWM(void);
__irq void IRQ_Handler(void);

int main(void)
{
        PINSEL2=0x0;
        FIO0DIR=(1<<22);
        FIO1DIR=(1<<17)|(1<<18)|(1<<19);
        initclk();
        initPWM();

}


__irq void IRQ_Handler(void)
{  unsigned long int reg;
        reg=PWMIR;
        if((1<<0) & PWMIR)
        {
                video=1;
                vcount++;
                if(vcount<480 && video==1)
                        {       FIO0SET=(1<<22);
                                FIO1SET=(1<<17);
                                FIO1CLR=(1<<17);
                        }
                else if(vcount>=480 && vcount<494)
                        {       FIO0SET=(1<<22);
                                video=0;
                        }
                else if(vcount>=494 && vcount<496)
                        {
                                FIO0CLR=(1<<22);
                        }
                else if(vcount>=496 &&  vcount<528)
                        {
                                FIO0SET=(1<<22);
                        }
                else if(vcount>=528)
                        {       FIO0SET=(1<<22);
                                video=1;
                                vcount=0;
                        }


        }
        else if((1<<3) & PWMIR)
        {
                video=0;

        }
   PWMIR=reg;
   VICVectAddr = 0x0;

}

void initPWM(void)
{
    /*Assuming that PLL0 has been setup with CCLK = 60Mhz and PCLK also = 60Mhz.*/
    /*This is a per the Setup & Init Sequence given in the tutorial*/

    PINSEL1 |=(1<<12);
    PWMPCR = (1<<5); //Select Double  Edge PWM
        PWMPR  = 0;
    PWMMR0 = 1906;//a total pulse duration of nearly 31.77 us
        PWMMR3 = 1510;//MR3 register match on 25.17 us and with this interupt genration
    PWMMR4 = 1792;//MR4 register match on 29.88 us
        PWMMR5 = 1566;//MR5 register match on 26.11 us
    PWMMCR = (1<<9)|(1<<1)|(1<<0); // Reset PWMTC on PWMMR0 match
    PWMLER = (1<<5)|(1<<4)|(1<<3) | (1<<0); // update MR0 and MR1
    PWMPCR |= (1<<13); // enable PWM output
    PWMTCR = (1<<1) ; //Reset PWM TC & PR

    //Now , the final moment - enable everything
    PWMTCR = (1<<0) | (1<<3); // enable counters and PWM Mode

    //PWM Generation goes active now - LED must be 25% Bright after Reset!!
    //Now you can get the PWM output at Pin P0.21!
        VICDefVectAddr = (unsigned)IRQ_Handler;//address of irq
        VICIntEnable=(1<<8);
}

clk header file just feeds the pll seqence and genrates 60Mhz clk and pclk

changes in startup.s:

; Exception Vectors
;  Mapped to Address 0.
;  Absolute addressing mode must be used.
;  Dummy Handlers are implemented as infinite loops which can be modified.

Vectors         LDR     PC, Reset_Addr
                LDR     PC, Undef_Addr
                LDR     PC, SWI_Addr
                LDR     PC, PAbt_Addr
                LDR     PC, DAbt_Addr
                NOP                            ; Reserved Vector
                        LDR     PC, IRQ_Addr
                                LDR     PC, [PC, #-0x0FF0]     ; Vector from VicVectAddr
                LDR     PC, FIQ_Addr

        IMPORT IRQ_Handler
Reset_Addr      DCD     Reset_Handler
Undef_Addr      DCD     Undef_Handler
SWI_Addr        DCD     SWI_Handler
PAbt_Addr       DCD     PAbt_Handler
DAbt_Addr       DCD     DAbt_Handler
                DCD     0                      ; Reserved Address
IRQ_Addr        DCD     IRQ_Handler
FIQ_Addr        DCD     FIQ_Handler

Undef_Handler   B       Undef_Handler
SWI_Handler     B       SWI_Handler
PAbt_Handler    B       PAbt_Handler
DAbt_Handler    B       DAbt_Handler
;IRQ_Handler     B       IRQ_Handler
FIQ_Handler     B       FIQ_Handler


; Reset Handler

        EXPORT  Reset_Handler
Reset_Handler

Parents Reply Children