Choco OS  V.0.16.9.0
Join to the chocolate world
oc_uart_lld.h
1 
32 #ifndef UARTTEM_PORTABLE_INC_LLD_OC_UART_LLD_H_
33 #define UARTTEM_PORTABLE_INC_LLD_OC_UART_LLD_H_
34 
35 #include <oc_machine.h>
36 #include <oc_errors.h>
37 #include <oc_frequency.h>
38 
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
45 #else
46 
47 
53 #define _________________________________________TYPES_SECTION______________________________________________________________________________
54 #define MODULE_NAME UART
57 
58 //==========================================================================================================================================
65 //==========================================================================================================================================
67 
68 //==========================================================================================================================================
75 //==========================================================================================================================================
76 oC_ModulePinFunction_DefineType;
77 
78 //==========================================================================================================================================
85 //==========================================================================================================================================
86 oC_ModulePin_DefineType;
87 //==========================================================================================================================================
93 //==========================================================================================================================================
94 typedef oC_ChannelIndex_t oC_UART_LLD_ChannelIndex_t;
95 
96 //==========================================================================================================================================
100 //==========================================================================================================================================
101 typedef enum
102 {
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;
109 
110 //==========================================================================================================================================
114 //==========================================================================================================================================
115 typedef enum
116 {
117  oC_UART_LLD_Parity_None ,
118  oC_UART_LLD_Parity_Odd ,
119  oC_UART_LLD_Parity_Even
120 } oC_UART_LLD_Parity_t;
121 
122 //==========================================================================================================================================
126 //==========================================================================================================================================
127 typedef enum
128 {
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;
134 
135 //==========================================================================================================================================
139 //==========================================================================================================================================
140 typedef enum
141 {
142  oC_UART_LLD_BitOrder_LSBFirst ,
143  oC_UART_LLD_BitOrder_MSBFirst
144 } oC_UART_LLD_BitOrder_t;
145 
146 //==========================================================================================================================================
150 //==========================================================================================================================================
151 typedef enum
152 {
153  oC_UART_LLD_Invert_NotInverted ,
154  oC_UART_LLD_Invert_Inverted
155 } oC_UART_LLD_Invert_t;
156 
157 //==========================================================================================================================================
165 //==========================================================================================================================================
166 typedef void (*oC_UART_LLD_Interrupt_t)( oC_UART_Channel_t Channel );
167 
168 #undef MODULE_NAME
169 #undef _________________________________________TYPES_SECTION______________________________________________________________________________
170 
177 #define _________________________________________MACROS_SECTION_____________________________________________________________________________
178 
179 //==========================================================================================================================================
197 //==========================================================================================================================================
198 #define oC_UART_LLD_ForEachChannel( Channel , ChannelIndex ) oC_Machine_ForEachChannel( UART , Channel , ChannelIndex )
199 
200 #undef _________________________________________MACROS_SECTION_____________________________________________________________________________
201 
202 
208 #define _________________________________________FUNCTIONS_SECTION__________________________________________________________________________
209 
212 
213 //==========================================================================================================================================
223 //==========================================================================================================================================
224 extern bool oC_UART_LLD_IsChannelCorrect( oC_UART_Channel_t Channel );
225 //==========================================================================================================================================
235 //==========================================================================================================================================
236 extern bool oC_UART_LLD_IsChannelIndexCorrect( oC_UART_LLD_ChannelIndex_t ChannelIndex );
237 //==========================================================================================================================================
247 //==========================================================================================================================================
248 extern oC_UART_LLD_ChannelIndex_t oC_UART_LLD_ChannelToChannelIndex( oC_UART_Channel_t Channel );
249 //==========================================================================================================================================
259 //==========================================================================================================================================
260 extern oC_UART_Channel_t oC_UART_LLD_ChannelIndexToChannel( oC_UART_LLD_ChannelIndex_t Channel );
261 //==========================================================================================================================================
272 //==========================================================================================================================================
273 extern oC_UART_Channel_t oC_UART_LLD_GetChannelOfModulePin( oC_UART_Pin_t ModulePin );
274 //==========================================================================================================================================
292 //==========================================================================================================================================
293 extern oC_ErrorCode_t oC_UART_LLD_TurnOnDriver( void );
294 //==========================================================================================================================================
313 //==========================================================================================================================================
314 extern oC_ErrorCode_t oC_UART_LLD_TurnOffDriver( void );
315 //==========================================================================================================================================
335 //==========================================================================================================================================
336 extern oC_ErrorCode_t oC_UART_LLD_SetDriverInterruptHandlers( oC_UART_LLD_Interrupt_t RxNotEmpty , oC_UART_LLD_Interrupt_t TxNotFull);
337 //==========================================================================================================================================
358 //==========================================================================================================================================
359 extern oC_ErrorCode_t oC_UART_LLD_SetPower( oC_UART_Channel_t Channel , oC_Power_t Power );
360 //==========================================================================================================================================
382 //==========================================================================================================================================
383 extern oC_ErrorCode_t oC_UART_LLD_ReadPower( oC_UART_Channel_t Channel , oC_Power_t * outPower );
384 //==========================================================================================================================================
403 //==========================================================================================================================================
404 extern oC_ErrorCode_t oC_UART_LLD_DisableOperations( oC_UART_Channel_t Channel );
405 //==========================================================================================================================================
425 //==========================================================================================================================================
426 extern oC_ErrorCode_t oC_UART_LLD_EnableOperations( oC_UART_Channel_t Channel );
427 //==========================================================================================================================================
446 //==========================================================================================================================================
447 extern oC_ErrorCode_t oC_UART_LLD_RestoreDefaultStateOnChannel( oC_UART_Channel_t Channel );
448 //==========================================================================================================================================
472 //==========================================================================================================================================
473 extern oC_ErrorCode_t oC_UART_LLD_SetWordLength( oC_UART_Channel_t Channel , oC_UART_LLD_WordLength_t WordLength );
474 //==========================================================================================================================================
494 //==========================================================================================================================================
495 extern oC_ErrorCode_t oC_UART_LLD_ReadWordLength( oC_UART_Channel_t Channel , oC_UART_LLD_WordLength_t * outWordLength );
496 //==========================================================================================================================================
520 //==========================================================================================================================================
521 extern oC_ErrorCode_t oC_UART_LLD_SetBitRate( oC_UART_Channel_t Channel , uint32_t BitRate );
522 //==========================================================================================================================================
542 //==========================================================================================================================================
543 extern oC_ErrorCode_t oC_UART_LLD_ReadBitRate( oC_UART_Channel_t Channel , uint32_t * outBitRate );
544 //==========================================================================================================================================
568 //==========================================================================================================================================
569 extern oC_ErrorCode_t oC_UART_LLD_SetParity( oC_UART_Channel_t Channel , oC_UART_LLD_Parity_t Parity );
570 //==========================================================================================================================================
590 //==========================================================================================================================================
591 extern oC_ErrorCode_t oC_UART_LLD_ReadParity( oC_UART_Channel_t Channel , oC_UART_LLD_Parity_t * outParity );
592 //==========================================================================================================================================
616 //==========================================================================================================================================
617 extern oC_ErrorCode_t oC_UART_LLD_SetStopBit( oC_UART_Channel_t Channel , oC_UART_LLD_StopBit_t StopBit );
618 //==========================================================================================================================================
638 //==========================================================================================================================================
639 extern oC_ErrorCode_t oC_UART_LLD_ReadStopBit( oC_UART_Channel_t Channel , oC_UART_LLD_StopBit_t * outStopBit );
640 //==========================================================================================================================================
664 //==========================================================================================================================================
665 extern oC_ErrorCode_t oC_UART_LLD_SetBitOrder( oC_UART_Channel_t Channel , oC_UART_LLD_BitOrder_t BitOrder );
666 //==========================================================================================================================================
686 //==========================================================================================================================================
687 extern oC_ErrorCode_t oC_UART_LLD_ReadBitOrder( oC_UART_Channel_t Channel , oC_UART_LLD_BitOrder_t * outBitOrder );
688 //==========================================================================================================================================
712 //==========================================================================================================================================
713 extern oC_ErrorCode_t oC_UART_LLD_SetInvert( oC_UART_Channel_t Channel , oC_UART_LLD_Invert_t Invert );
714 //==========================================================================================================================================
734 //==========================================================================================================================================
735 extern oC_ErrorCode_t oC_UART_LLD_ReadInvert( oC_UART_Channel_t Channel , oC_UART_LLD_Invert_t * outInvert );
736 //==========================================================================================================================================
757 //==========================================================================================================================================
758 extern oC_ErrorCode_t oC_UART_LLD_SetLoopback( oC_UART_Channel_t Channel , bool Loopback );
759 //==========================================================================================================================================
780 //==========================================================================================================================================
781 extern oC_ErrorCode_t oC_UART_LLD_ReadLoopback( oC_UART_Channel_t Channel , bool * outLoopback );
782 
783 //==========================================================================================================================================
784 //==========================================================================================================================================
785 extern oC_ErrorCode_t oC_UART_LLD_ConnectModulePin( oC_UART_Pin_t ModulePin );
786 
787 //==========================================================================================================================================
788 //==========================================================================================================================================
789 extern oC_ErrorCode_t oC_UART_LLD_DisconnectModulePin( oC_UART_Pin_t ModulePin );
790 
791 //==========================================================================================================================================
792 //==========================================================================================================================================
793 
794 extern oC_ErrorCode_t oC_UART_LLD_SetChannelUsed( oC_UART_Channel_t Channel );
795 
796 //==========================================================================================================================================
797 //==========================================================================================================================================
798 extern oC_ErrorCode_t oC_UART_LLD_SetChannelUnused( oC_UART_Channel_t Channel );
799 
800 //==========================================================================================================================================
801 //==========================================================================================================================================
802 extern bool oC_UART_LLD_IsChannelUsed( oC_UART_Channel_t Channel );
803 
804 //==========================================================================================================================================
805 //==========================================================================================================================================
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 );
807 
808 //==========================================================================================================================================
809 //==========================================================================================================================================
810 extern oC_ErrorCode_t oC_UART_LLD_ClearRxFifo( oC_UART_Channel_t Channel );
811 
812 //==========================================================================================================================================
813 //==========================================================================================================================================
814 extern bool oC_UART_LLD_IsTxFifoFull( oC_UART_Channel_t Channel );
815 
816 //==========================================================================================================================================
817 //==========================================================================================================================================
818 extern bool oC_UART_LLD_IsRxFifoEmpty( oC_UART_Channel_t Channel );
819 
820 //==========================================================================================================================================
821 //==========================================================================================================================================
822 extern void oC_UART_LLD_PutData( oC_UART_Channel_t Channel , char Data );
823 
824 //==========================================================================================================================================
825 //==========================================================================================================================================
826 extern char oC_UART_LLD_GetData( oC_UART_Channel_t Channel );
827 
828 //==========================================================================================================================================
829 //==========================================================================================================================================
830 extern oC_ErrorCode_t oC_UART_LLD_WriteWithDma( oC_UART_Channel_t Channel , const char * Buffer , oC_UInt_t Size );
831 
832 //==========================================================================================================================================
833 //==========================================================================================================================================
834 extern oC_ErrorCode_t oC_UART_LLD_ReadWithDma( oC_UART_Channel_t Channel , char * outBuffer , oC_UInt_t Size );
835 
836 #undef _________________________________________FUNCTIONS_SECTION__________________________________________________________________________
837 
839 
840 #endif /* UART module defined */
841 #endif /* UARTTEM_PORTABLE_INC_LLD_OC_UART_LLD_H_ */
The file with frequency definitions.
#define oC_ModuleChannel_DefineType
defines module channel type
Definition: oc_channels.h:541
oC_Channel_t
stores machine channel
Definition: oc_channels.h:573
The file with interface for the machine module.
oC_Power_t
stores registers power state
Definition: oc_stdtypes.h:249