We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi am new to this forum.I have recently ordered a "free" KEIL evalution software CD for ARM development tools.I am working on LPCE2214 OLIMEX board. Am able to toggle a PORT pin and also on TIMER and serial port in "polling" mode. But when I enable ISR funstions using VIC,my program in not jumping to ISR.but in debug mode i could see the jump to ISR. also I have DefaultISR in my code.here am attaching my code with this mail. // This program is created for LPC-E2214 board #include "lpc22xx.h" #define OSCILLATOR_CLOCK_FREQUENCY 14745600 //in MHz #define PLOCK 0x400 //in MHz void Initialize(void); void feed(void); void UART0Initialize(unsigned int baud); void UART0WriteChar(unsigned char ch0); unsigned char UART0ReadChar(void); unsigned char UART0ReadChar_nostop(void); unsigned int processorClockFrequency(void); unsigned int peripheralClockFrequency(void); void tc0(void)__irq; static void DefDummyInterrupt(void)__irq; void init_timer(void); void InitVIC(void); long volatile timeval; void wait (void) /* wait function */ { unsigned long i; i = timeval; while ((i + 10) != timeval); /* wait 100ms */ } int main() { /**** VARIABLES ****/ unsigned char ch0 = 0x0; unsigned char ch1 = 0x0; long i=0; /**** INITIALIZATION ****/ // Frequency initialization Initialize(); // UART initialization UART0Initialize(9600); init_timer(); InitVIC(); while(1) { UART0WriteChar('3'); wait(); UART0WriteChar('2'); wait(); } } void Initialize(void) { // Setting Multiplier and Divider values PLLCFG=0x23; feed(); // Enabling the PLL */ PLLCON=0x1; feed(); // Wait for the PLL to lock to set frequency while(!(PLLSTAT & PLOCK)) ; // Connect the PLL as the clock source PLLCON=0x3; feed(); // Enabling MAM and setting number of clocks used for Flash memory fetch (4 cclks in this case) MAMCR=0x2; MAMTIM=0x4; // Setting peripheral Clock (pclk) to System Clock (cclk) VPBDIV=0x1; } void feed(void) { PLLFEED=0xAA; PLLFEED=0x55; } /* Setup the Timer Counter 0 Interrupt */ void init_timer (void) { T0MR0 = 149999; // 10mSec = 150000-1 counts T0MCR = 3; // Interrupt and Reset on MR0 T0TCR = 1; // Timer0 Enable VICVectAddr0 = (unsigned long)tc0; // set interrupt vector in 0 VICVectCntl0 = 0x20 | 4; // use it for Timer 0 Interrupt VICIntEnable = 0x00000010; // Enable Timer0 Interrupt // Timer0 Enable } /* Timer0 Compare-Match Interrupt Handler (ISR) */ /* Timer Counter 0 Interrupt executes each 10ms @ 60 MHz CPU Clock */ /* Timer Counter 0 Interrupt executes each 10ms @ 60 MHz CPU Clock */ void tc0 (void) __irq { ++timeval; T0IR = 1; // Clear interrupt flag VICVectAddr = 0; // Acknowledge Interrupt } void DefDummyInterrupt(void)__irq { ; } void InitVIC() { VICDefVectAddr = (unsigned long)DefDummyInterrupt; } /**** UART0 ****/ void UART0Initialize(unsigned int baud) { unsigned int divisor = peripheralClockFrequency() / (16 * baud); U0LCR = 0x83; //devisor U0DLL = divisor & 0xFF; U0DLM = (divisor >> 8) & 0xFF; U0LCR &= ~0x80; //set functionalite to pins: port0.0 -> TX0, port0.1 -> RXD0 PINSEL0 = PINSEL0 & ~0xF | 0x5; } void UART0WriteChar(unsigned char ch0) { //when U0LSR_bit.THRE is 0 - U0THR contains valid data. while ((U0LSR && 0x20) == 0); U0THR = ch0; } unsigned char UART0ReadChar(void) { //when U0LSR_bit.DR is 1 - U0RBR contains valid data while ((U0LSR && 0x01) == 0); return U0RBR; } unsigned int processorClockFrequency(void) { //return real processor clock speed return OSCILLATOR_CLOCK_FREQUENCY * (PLLCON & 1 ? (PLLCFG & 0xF) + 1 : 1); } unsigned int peripheralClockFrequency(void) { //VPBDIV - determines the relationship between the processor clock (cclk) //and the clock used by peripheral devices (pclk). unsigned int divider; switch (VPBDIV & 3) { case 0: divider = 4; break; case 1: divider = 1; break; case 2: divider = 2; break; } return processorClockFrequency() / divider; } Please look into this and It would be a great help for me as i have been trying for it from past 2 weeks. I think, abviously iam missing some things. I have not changes any things in startup.s file. please guide me.appreciate your help. Thanks
help help hellp..please..