Вот пытаюсь зделать прерывание по приему 8 байт на УАПП0 включил FIFO настроил вроде но все равно вызывается прерывание только когда принелось 14 байт не знает что такое может быть ума не приложу !
вот инит какой / Setup UART interrupt void InitUART0Interrupt(void) { // Setup uart1 callback functions. // uart0rx_function = uart0rx_func; // uart0tx_function = uart0tx_func;
VICIntSelect &= ~VIC_UART0_bit; // IRQ on UART0. VICVectAddr15 = (unsigned int)&UART0Interrupt; VICVectCntl15 = 0x20 | VIC_UART0; // Enable vector interrupt for UART0. VICIntEnable |= VIC_UART0_bit; // Enable UART 0 interrupt. U0IER=1;
}
/**** UART0 ****/ void UART0Initialize(unsigned int baud) { unsigned int divisor = peripheralClockFrequency() / (16 * baud);
//set Line Control Register (8 bit, 1 stop bit, no parity, enable DLAB) U0LCR_bit.WLS = 0x3; //8 bit U0LCR_bit.SBS = 0x0; //1 stop bit U0LCR_bit.PE = 0x0; //no parity U0LCR_bit.DLAB = 0x1; //enable DLAB //with one row // U0LCR = 0x83;
//devisor U0DLL = divisor & 0xFF; U0DLM = (divisor >> 8) & 0xFF; U0LCR &= ~0x80;
//set functionalite to pins: port0.0 -> TX0, port0.1 -> RXD0 PINSEL0_bit.P0_0 = 0x1; PINSEL0_bit.P0_1 = 0x1; U0FCR_bit.RTLS=0x01; U0FCR_bit.FCRFE=1; U0FCR_bit.RFR=1; U0FCR_bit.TFR=1; //with one row //PINSEL0 = PINSEL0 & ~0xF | 0x5; }
|