Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049 #ifndef _AFEC_
00050 #define _AFEC_
00051
00052
00053
00054
00055 #include <assert.h>
00056 #include <stdint.h>
00057
00058
00059
00060
00061
00062
00063 #define AFEC_MR_SETTLING_Pos 20
00064 #define AFEC_MR_SETTLING_Msk (0x3u << AFEC_MR_SETTLING_Pos)
00065
00066 #define AFEC_MR_SETTLING_AST3 (0x0u << 20)
00067
00068 #define AFEC_MR_SETTLING_AST5 (0x1u << 20)
00069
00070 #define AFEC_MR_SETTLING_AST9 (0x2u << 20)
00071
00072 #define AFEC_MR_SETTLING_AST17 (0x3u << 20)
00073
00074
00075
00076 #define AFEC_EMR_STM_Pos 25
00077 #define AFEC_EMR_STM_Msk (0x1u << AFEC_EMR_STM_Pos)
00078
00079 #define AFEC_EMR_STM_MULTI_TRIG (0x0u << 25)
00080
00081
00082 #define AFEC_EMR_STM_SINGLE_TRIG (0x1u << 25)
00083
00084
00085
00086
00087 #define AFEC_EMR_TAG_Pos 24
00088 #define AFEC_EMR_TAG_Msk (0x1u << AFEC_EMR_TAG_Pos)
00089
00090 #define AFEC_EMR_TAG_CHNB_ZERO (0x0u << 24)
00091
00092
00093 #define AFEC_EMR_TAG_APPENDS (0x1u << 24)
00094
00095
00096
00097
00098 #define AFEC_EMR_CMPALL_Pos 9
00099 #define AFEC_EMR_CMPALL_Msk (0x1u << AFEC_EMR_TAG_Pos)
00100
00101 #define AFEC_EMR_CMPALL_ONE_CHANNEL_COMP (0x0u << 9)
00102
00103
00104 #define AFEC_EMR_CMPALL_ALL_CHANNELS_COMP (0x1u << 9)
00105
00106
00107 #define AFEC_ACR_PGA0_ON (0x1u << 2)
00108 #define AFEC_ACR_PGA1_ON (0x1u << 3)
00109
00110 #ifdef __cplusplus
00111 extern "C" {
00112 #endif
00113
00114
00115
00116
00117
00118 #define AFEC_GetModeReg(pAFEC) ((pAFEC)->AFEC_MR)
00119 #define AFEC_SetModeReg(pAFEC, mode) ((pAFEC)->AFEC_MR = mode)
00120
00121 #define AFEC_GetExtModeReg(pAFEC) ((pAFEC)->AFEC_EMR)
00122 #define AFEC_SetExtModeReg(pAFEC, mode) ((pAFEC)->AFEC_EMR = mode)
00123
00124 #define AFEC_StartConversion(pAFEC) ((pAFEC)->AFEC_CR = AFEC_CR_START)
00125
00126 #define AFEC_EnableChannel(pAFEC, dwChannel) {\
00127 (pAFEC)->AFEC_CHER = (1 << (dwChannel));\
00128 }
00129
00130 #define AFEC_DisableChannel(pAFEC, dwChannel) {\
00131 (pAFEC)->AFEC_CHDR = (1 << (dwChannel));\
00132 }
00133
00134 #define AFEC_EnableIt(pAFEC, dwMode) {\
00135 (pAFEC)->AFEC_IER = (dwMode);\
00136 }
00137
00138 #define AFEC_DisableIt(pAFEC, dwMode) {\
00139 (pAFEC)->AFEC_IDR = (dwMode);\
00140 }
00141
00142 #define AFEC_SetChannelGain(pAFEC,dwMode) {\
00143 (pAFEC)->AFEC_CGR = dwMode;\
00144 }
00145
00146 #define AFEC_EnableDataReadyIt(pAFEC) ((pAFEC)->AFEC_IER = AFEC_IER_DRDY)
00147
00148 #define AFEC_GetStatus(pAFEC) ((pAFEC)->AFEC_ISR)
00149
00150 #define AFEC_GetCompareMode(pAFEC) (((pAFEC)->AFEC_EMR)& (AFEC_EMR_CMPMODE_Msk))
00151
00152 #define AFEC_GetChannelStatus(pAFEC) ((pAFEC)->AFEC_CHSR)
00153
00154 #define AFEC_GetInterruptMaskStatus(pAFEC) ((pAFEC)->AFEC_IMR)
00155
00156 #define AFEC_GetLastConvertedData(pAFEC) ((pAFEC)->AFEC_LCDR)
00157
00158
00159
00160
00161 extern void AFEC_Initialize(Afec *pAFEC, uint32_t dwId);
00162 extern uint32_t AFEC_SetClock(Afec *pAFEC, uint32_t dwPres, uint32_t dwMck);
00163 extern void AFEC_SetTiming(Afec *pAFEC, uint32_t dwStartup,
00164 uint32_t dwTracking,
00165 uint32_t dwSettling);
00166 extern void AFEC_SetTrigger(Afec *pAFEC, uint32_t dwTrgSel);
00167 extern void AFEC_SetAnalogChange(Afec *pAFE, uint8_t bEnDis);
00168 extern void AFEC_SetSleepMode(Afec *pAFEC, uint8_t bEnDis);
00169 extern void AFEC_SetFastWakeup(Afec *pAFEC, uint8_t bEnDis);
00170 extern void AFEC_SetSequenceMode(Afec *pAFEC, uint8_t bEnDis);
00171 extern void AFEC_SetSequence(Afec *pAFEC, uint32_t dwSEQ1, uint32_t dwSEQ2);
00172 extern void AFEC_SetSequenceByList(Afec *pAFEC, uint8_t ucChList[],
00173 uint8_t ucNumCh);
00174 extern void AFEC_SetTagEnable(Afec *pAFEC, uint8_t bEnDis);
00175 extern void AFEC_SetCompareChannel(Afec *pAFEC, uint32_t dwChannel);
00176 extern void AFEC_SetCompareMode(Afec *pAFEC, uint32_t dwMode);
00177 extern void AFEC_SetComparisonWindow(Afec *pAFEC, uint32_t dwHi_Lo);
00178 extern uint8_t AFEC_CheckConfiguration(Afec *pAFEC, uint32_t dwMcK);
00179 extern uint32_t AFEC_GetConvertedData(Afec *pAFEC, uint32_t dwChannel);
00180 extern void AFEC_SetStartupTime(Afec *pAFEC, uint32_t dwUs);
00181 extern void AFEC_SetTrackingTime(Afec *pAFEC, uint32_t dwNs);
00182 extern void AFEC_SetAnalogOffset(Afec *pAFE, uint32_t dwChannel,
00183 uint32_t aoffset);
00184 extern void AFEC_SetAnalogControl(Afec *pAFE, uint32_t control);
00185 #ifdef __cplusplus
00186 }
00187 #endif
00188
00189 #endif
00190