83 USART_DREINTLVL_t dreIntLevel)
85 usart_data->
usart = usart;
107 USART_DREINTLVL_t dreIntLevel)
130 return (tempHead != tempTail);
147 bool TXBuffer_FreeSpace;
150 TXbufPtr = &usart_data->
buffer;
154 if(TXBuffer_FreeSpace)
156 tempTX_Head = TXbufPtr->
TX_Head;
157 TXbufPtr->
TX[tempTX_Head]= data;
162 tempCTRLA = usart_data->
usart->CTRLA;
163 tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | usart_data->
dreIntLevel;
164 usart_data->
usart->CTRLA = tempCTRLA;
166 return TXBuffer_FreeSpace;
188 return (tempHead != tempTail);
209 bufPtr = &usart_data->
buffer;
232 bufPtr = &usart_data->
buffer;
237 uint8_t tempRX_Tail = bufPtr->
RX_Tail;
238 uint8_t data = usart_data->
usart->DATA;
240 if (tempRX_Head == tempRX_Tail) {
263 bufPtr = &usart_data->
buffer;
267 if (bufPtr->
TX_Head == tempTX_Tail){
269 uint8_t tempCTRLA = usart_data->
usart->CTRLA;
270 tempCTRLA = (tempCTRLA & ~USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc;
271 usart_data->
usart->CTRLA = tempCTRLA;
276 usart_data->
usart->DATA = data;
295 usart->CTRLB |= USART_TXB8_bm;
297 usart->CTRLB &= ~USART_TXB8_bm;
300 usart->DATA = (data & 0x00FF);
315 if(usart->CTRLB & USART_RXB8_bm) {
316 return(0x0100 | usart->DATA);
bool USART_RXBufferData_Available(USART_data_t *usart_data)
Test if there is data in the receive software buffer.
Struct used when interrupt driven driver is used.
void USART_InterruptDriver_Initialize(USART_data_t *usart_data, USART_t *usart, USART_DREINTLVL_t dreIntLevel)
Initializes buffer and selects what USART module to use.
volatile uint8_t RX[USART_RX_BUFFER_SIZE]
#define USART_RX_BUFFER_MASK
void USART_NineBits_PutChar(USART_t *usart, uint16_t data)
Put data (9 bit character).
bool USART_TXBuffer_FreeSpace(USART_data_t *usart_data)
Test if there is data in the transmitter software buffer.
uint16_t USART_NineBits_GetChar(USART_t *usart)
Get received data (9 bit character).
#define USART_TX_BUFFER_MASK
void USART_DataRegEmpty(USART_data_t *usart_data)
Data Register Empty Interrupt Service Routine.
volatile uint8_t TX[USART_TX_BUFFER_SIZE]
XMEGA USART driver header file.
void USART_InterruptDriver_DreInterruptLevel_Set(USART_data_t *usart_data, USART_DREINTLVL_t dreIntLevel)
Set USART DRE interrupt level.
bool USART_TXBuffer_PutByte(USART_data_t *usart_data, uint8_t data)
Put data (5-8 bit character).
bool USART_RXComplete(USART_data_t *usart_data)
RX Complete Interrupt Service Routine.
uint8_t USART_RXBuffer_GetByte(USART_data_t *usart_data)
Get received data (5-8 bit character).
USART_DREINTLVL_t dreIntLevel