+++++++++++++++++++++++++++++++FIFO LESEN++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ int FIFO_Get(struct FIFO* bufferPTR, char *data_dest) { if(bufferPTR) { if ( bufferPTR->readIndex == bufferPTR->writeIndex) { return EMPTY; } *data_dest = bufferPTR->buffer[bufferPTR->readIndex]; bufferPTR->readIndex = bufferPTR->readIndex+1; if (bufferPTR->readIndex > bufferPTR->size-1) { bufferPTR->readIndex = 0; } return SUCCESS; } return FAIL; } +++++++++++++++++++++++++++++++Daten in den FIFO schreiben++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ for (i= 0; i<9;i++) { FIFO_Put(sendBufPTR, buffer[i]); } +++++++++++++++++++++++++++++++UART TX Settings++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Baudrate = 9600 U1MODEbits.UARTEN = 1; U1STAbits.UTXISEL=0; U1STAbits.UTXEN=1; +++++++++++++++++++++++++++++++UART TX ISR++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ void __attribute__ ((__interrupt__, __auto_psv__)) _U1TXInterrupt(void) { IFS0bits.U1TXIF = 0; } +++++++++++++++++++++++++++++++Sende aufruf++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // ist die letzte der getesteten Varianten void UART_TX(int bufSize) { // bufSize-> Menge der Daten zur Übertragung. Soll wenn richtig klappt durch FIFO Daten Inhalt ersetzt werden while(bufSize) { // while(U1STAbits.UTXBF); // Warten wenn TX Buffer voll ist FIFO_Get(sendBufPTR, &U1TXREG); // Zeichen in UART TX FIFO zum senden schreiben bufSize--; // while(U1STAbits.UTXISEL); while(!U1STAbits.TRMT); } }