32 #ifndef UARTTEM_PORTABLE_INC_LLD_OC_UART_LLD_H_ 33 #define UARTTEM_PORTABLE_INC_LLD_OC_UART_LLD_H_ 36 #include <oc_errors.h> 39 #if oC_Channel_IsModuleDefined(UART) == false 40 #error UART module channels are not defined 41 #elif oC_ModulePinFunctions_IsModuleDefined(UART) == false 42 #error UART module pin functions are not defined 43 #elif oC_ModulePin_IsModuleDefined(UART) == false 44 #error UART module pins are not defined 53 #define _________________________________________TYPES_SECTION______________________________________________________________________________ 54 #define MODULE_NAME UART 76 oC_ModulePinFunction_DefineType;
86 oC_ModulePin_DefineType;
103 oC_UART_LLD_WordLength_5Bits ,
104 oC_UART_LLD_WordLength_6Bits ,
105 oC_UART_LLD_WordLength_7Bits ,
106 oC_UART_LLD_WordLength_8Bits ,
107 oC_UART_LLD_WordLength_9Bits
108 } oC_UART_LLD_WordLength_t;
117 oC_UART_LLD_Parity_None ,
118 oC_UART_LLD_Parity_Odd ,
119 oC_UART_LLD_Parity_Even
120 } oC_UART_LLD_Parity_t;
129 oC_UART_LLD_StopBit_0p5Bit ,
130 oC_UART_LLD_StopBit_1Bit ,
131 oC_UART_LLD_StopBit_1p5Bits ,
132 oC_UART_LLD_StopBit_2Bits
133 } oC_UART_LLD_StopBit_t;
142 oC_UART_LLD_BitOrder_LSBFirst ,
143 oC_UART_LLD_BitOrder_MSBFirst
144 } oC_UART_LLD_BitOrder_t;
153 oC_UART_LLD_Invert_NotInverted ,
154 oC_UART_LLD_Invert_Inverted
155 } oC_UART_LLD_Invert_t;
166 typedef void (*oC_UART_LLD_Interrupt_t)( oC_UART_Channel_t Channel );
169 #undef _________________________________________TYPES_SECTION______________________________________________________________________________ 177 #define _________________________________________MACROS_SECTION_____________________________________________________________________________ 198 #define oC_UART_LLD_ForEachChannel( Channel , ChannelIndex ) oC_Machine_ForEachChannel( UART , Channel , ChannelIndex ) 200 #undef _________________________________________MACROS_SECTION_____________________________________________________________________________ 208 #define _________________________________________FUNCTIONS_SECTION__________________________________________________________________________ 224 extern bool oC_UART_LLD_IsChannelCorrect( oC_UART_Channel_t Channel );
236 extern bool oC_UART_LLD_IsChannelIndexCorrect( oC_UART_LLD_ChannelIndex_t ChannelIndex );
248 extern oC_UART_LLD_ChannelIndex_t oC_UART_LLD_ChannelToChannelIndex( oC_UART_Channel_t Channel );
260 extern oC_UART_Channel_t oC_UART_LLD_ChannelIndexToChannel( oC_UART_LLD_ChannelIndex_t Channel );
273 extern oC_UART_Channel_t oC_UART_LLD_GetChannelOfModulePin( oC_UART_Pin_t ModulePin );
293 extern oC_ErrorCode_t oC_UART_LLD_TurnOnDriver(
void );
314 extern oC_ErrorCode_t oC_UART_LLD_TurnOffDriver(
void );
336 extern oC_ErrorCode_t oC_UART_LLD_SetDriverInterruptHandlers( oC_UART_LLD_Interrupt_t RxNotEmpty , oC_UART_LLD_Interrupt_t TxNotFull);
359 extern oC_ErrorCode_t oC_UART_LLD_SetPower( oC_UART_Channel_t Channel ,
oC_Power_t Power );
383 extern oC_ErrorCode_t oC_UART_LLD_ReadPower( oC_UART_Channel_t Channel ,
oC_Power_t * outPower );
404 extern oC_ErrorCode_t oC_UART_LLD_DisableOperations( oC_UART_Channel_t Channel );
426 extern oC_ErrorCode_t oC_UART_LLD_EnableOperations( oC_UART_Channel_t Channel );
447 extern oC_ErrorCode_t oC_UART_LLD_RestoreDefaultStateOnChannel( oC_UART_Channel_t Channel );
473 extern oC_ErrorCode_t oC_UART_LLD_SetWordLength( oC_UART_Channel_t Channel , oC_UART_LLD_WordLength_t WordLength );
495 extern oC_ErrorCode_t oC_UART_LLD_ReadWordLength( oC_UART_Channel_t Channel , oC_UART_LLD_WordLength_t * outWordLength );
521 extern oC_ErrorCode_t oC_UART_LLD_SetBitRate( oC_UART_Channel_t Channel , uint32_t BitRate );
543 extern oC_ErrorCode_t oC_UART_LLD_ReadBitRate( oC_UART_Channel_t Channel , uint32_t * outBitRate );
569 extern oC_ErrorCode_t oC_UART_LLD_SetParity( oC_UART_Channel_t Channel , oC_UART_LLD_Parity_t Parity );
591 extern oC_ErrorCode_t oC_UART_LLD_ReadParity( oC_UART_Channel_t Channel , oC_UART_LLD_Parity_t * outParity );
617 extern oC_ErrorCode_t oC_UART_LLD_SetStopBit( oC_UART_Channel_t Channel , oC_UART_LLD_StopBit_t StopBit );
639 extern oC_ErrorCode_t oC_UART_LLD_ReadStopBit( oC_UART_Channel_t Channel , oC_UART_LLD_StopBit_t * outStopBit );
665 extern oC_ErrorCode_t oC_UART_LLD_SetBitOrder( oC_UART_Channel_t Channel , oC_UART_LLD_BitOrder_t BitOrder );
687 extern oC_ErrorCode_t oC_UART_LLD_ReadBitOrder( oC_UART_Channel_t Channel , oC_UART_LLD_BitOrder_t * outBitOrder );
713 extern oC_ErrorCode_t oC_UART_LLD_SetInvert( oC_UART_Channel_t Channel , oC_UART_LLD_Invert_t Invert );
735 extern oC_ErrorCode_t oC_UART_LLD_ReadInvert( oC_UART_Channel_t Channel , oC_UART_LLD_Invert_t * outInvert );
758 extern oC_ErrorCode_t oC_UART_LLD_SetLoopback( oC_UART_Channel_t Channel ,
bool Loopback );
781 extern oC_ErrorCode_t oC_UART_LLD_ReadLoopback( oC_UART_Channel_t Channel ,
bool * outLoopback );
785 extern oC_ErrorCode_t oC_UART_LLD_ConnectModulePin( oC_UART_Pin_t ModulePin );
789 extern oC_ErrorCode_t oC_UART_LLD_DisconnectModulePin( oC_UART_Pin_t ModulePin );
794 extern oC_ErrorCode_t oC_UART_LLD_SetChannelUsed( oC_UART_Channel_t Channel );
798 extern oC_ErrorCode_t oC_UART_LLD_SetChannelUnused( oC_UART_Channel_t Channel );
802 extern bool oC_UART_LLD_IsChannelUsed( oC_UART_Channel_t Channel );
806 extern oC_ErrorCode_t oC_UART_LLD_ReadModulePinsOfPin( oC_Pin_t Pin , oC_UART_Pin_t * outModulePinsArray , uint32_t * ArraySize , oC_UART_PinFunction_t PinFunction );
810 extern oC_ErrorCode_t oC_UART_LLD_ClearRxFifo( oC_UART_Channel_t Channel );
814 extern bool oC_UART_LLD_IsTxFifoFull( oC_UART_Channel_t Channel );
818 extern bool oC_UART_LLD_IsRxFifoEmpty( oC_UART_Channel_t Channel );
822 extern void oC_UART_LLD_PutData( oC_UART_Channel_t Channel ,
char Data );
826 extern char oC_UART_LLD_GetData( oC_UART_Channel_t Channel );
830 extern oC_ErrorCode_t oC_UART_LLD_WriteWithDma( oC_UART_Channel_t Channel ,
const char * Buffer , oC_UInt_t Size );
834 extern oC_ErrorCode_t oC_UART_LLD_ReadWithDma( oC_UART_Channel_t Channel ,
char * outBuffer , oC_UInt_t Size );
836 #undef _________________________________________FUNCTIONS_SECTION__________________________________________________________________________ The file with frequency definitions.
#define oC_ModuleChannel_DefineType
defines module channel type
oC_Channel_t
stores machine channel
The file with interface for the machine module.
oC_Power_t
stores registers power state