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

Regarding serial interrupt in LPC2378....

Dear all my code is written for serial transmission and reception on interrupt at 9600 baud rate its working fine but my problem is in continous loop I kept U0IER =0x06; for both transmission and reception on interrupt but reception occurs only once please suggest solution for continous reception.

Thnaks in advance....
void InitUART0(void)
{ PINSEL0 = 0x50; // Pin function UART0 U0LCR = 0x83; // Data length 8bits,stop bit 1,parity none DLAD enable U0DLM = Div / 256 ; U0DLL = Div % 256 ; U0LCR =0x03 ; // Reset DLAB bit U0FCR =0x07 ; // Clear tx FIFO and Enable RX TX FIFO U0IER =0x04; //Interrupt enable on Rx
} void InitVIC(void)
{ VICIntEnClr = 0xFFFFFFFF; //Clear all interrupts VICVectAddr = 0; VICIntSelect = 0; //All are IRQ

VICIntEnClr = 0x40; VICVectAddr6 = (unsigned long)UART0_ISR; //Set vector address VICVectPriority6 = 0x01; VICIntEnable = 0x40; //BIT 6 OF Interrupt sources bit allocation table
} void UART0_ISR(void) __irq
{ U0IER = 0; while (!(U0LSR & 0x01)) {} // Wait untill there is valid data in U0RBR Rchar = U0RBR ; buff1[l++]=Rchar; U0IIR=0x0; VICVectAddr = 0x00000000;
} int main(void)
{ InitCPU(); InitVIC(); // Initalization of VIC InitUART0(); InitUART1(); SCS |= 0x00000001; // set GPIOx to use Fast I/O FIO2DIR = 0x000000FF; // Direction of P2.0 to P2.8 Output while(1) { U0IER =0x06; if(buff1[0]=='x') { clear_Rxbuffer(); TransmitChar0('W');TransmitChar0('E');TransmitChar0('L'); TransmitChar0('C');TransmitChar0('0');TransmitChar0('M'); TransmitChar0('E'); U0IER =0x04; }

}

0