Помогите, пожалуйста сделать прерывания по приему байта по 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) { } }
|