Помогите, пожалуйста сделать прерывания по приему байта по UART (контроллер LPC2388)
У меня получился следующий код, но он не работает:
nclude <RTL.h>
#include <LPC23xx.H>
#define Fcclk 48000000
#define Fpclk (Fcclk / 2)
U8 cnt;
__irq void recieveUART (void)
{
cnt++;
FIO2SET = cnt;
FIO2CLR = ~cnt;
}
void initUART (void)
{
U32 Fdiv;
PINSEL0 |= 0x40000000; /* TxD1 en */
PINSEL1 |= 0x00000001; /* RxD1 en */
U1LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
Fdiv = (( Fpclk / 16 ) / 57600); /* baud rate */
U1DLM = Fdiv / 256;
U1DLL = Fdiv % 256;
U1LCR = 0x03; /* DLAB = 0 */
U1IER = 0x01;
VICVectAddr4 = (unsigned long)recieveUART;
VICVectCntl4 = 15; /* use it for Timer0 Interrupt */
VICIntEnable = 0x00000080;
}
int main (void)
{
FIO2DIR = 0x000000FF;
FIO2MASK = 0x00000000;
FIO2PIN = 0x00000000;
PINSEL10 = 0;
FIO2CLR = 0xFF;
FIO2SET = 0x01;
cnt=0;
initUART();
while (1)
{
}
}