/* * hal_usart.h * * Created: 08-Nov-18 17:40:59 * Author: Edwin */ #ifndef HAL_USART_H_ #define HAL_USART_H_ ////////////////////////////////////////////////////////////////////////// #include <avr/interrupt.h> #include <stdint.h> #include <avr/io.h> ////////////////////////////////////////////////////////////////////////// #define F_CPU 16000000UL ////////////////////////////////////////////////////////////////////////// //#define BAUD_PRESCALER(BAUD,CLK) (((CLK / (BAUD * 16UL))) - 1) ////////////////////////////////////////////////////////////////////////// typedef void (*fptr_t) (); /*<*/ typedef enum { mode_ASYNCHRON_USART, mode_SYNCHRONOUS_USART //mode_MASTER_SPI = 3 }mode_t; typedef enum { parityMode_DISSABELD, parityMode_EVEN_PARITY = 2, parityMode_ODD_PARITY }parityMode_t; typedef enum { stopBit_1_BIT, stopBit_2_BIT }stopBit_t; typedef enum { charSize_5BIT = 0, charSize_6BIT = 1, charSize_7BIT = 2, charSize_8BIT = 3, charSize_9BIT = 7 }charSize_t; typedef enum { clkPol_NONINVERTED, clkPol_INVERTED }clkPol_t; ////////////////////////////////////////////////////////////////////////// void hal_USART_enableModule(); void hal_USART_dissableModule(); uint8_t hal_USART_readDataReg(); uint16_t hal_USART_readDataReg_9Bit(); void hal_USART_writeDataReg(uint8_t data); void hal_USART_writeDataReg_9Bit(uint16_t data); uint8_t hal_USART_checkRxFrameErr(); uint8_t hal_USART_checkRxDataOverRun(); uint8_t hal_USART_checkRxParityErr(); void hal_USART_enableDoubleTxSpeed(); void hal_USART_dissableDoubleTxSpeed(); void hal_USART_enableMultiProcessorComMode(); void hal_USART_dissableMultiProcessorComMode(); void hal_USART_RxEnable(); void hal_USART_RxDissable(); void hal_USART_TxEnable(); void hal_USART_TxDissable(); void hal_USART_setMode(mode_t mode); void hal_USART_setParityMode(parityMode_t mode); void hal_USART_setStopBits(stopBit_t bit); void hal_USART_setCharSize(charSize_t size); void hal_USART_setClockPolarity(clkPol_t polarity); void hal_USART_setBaudRate(uint32_t baudRate); ////////////////////////////////////////////////////////////////////////// void hal_USART_registerRxCallback(fptr_t callback); void hal_USART_unregisterRXCallback(); void hal_USART_registerDataRegEmptyCallback(fptr_t callback); void hal_USART_unregisterDataRegEmptCallback(); void hal_USART_registerTxCallback(fptr_t callback); void hal_USART_unregisterTXCallback(); ////////////////////////////////////////////////////////////////////////// void hal_USART_putc (const char send); void hal_USART_puts (const char *send); #endif /* HAL_USART_H_ */