GLOBAL_SCU_XMC1
|
GLOBAL_SCU_XMC1.h
Go to the documentation of this file.
00001 00060 #ifndef GLOBAL_SCU_XMC1_H 00061 #define GLOBAL_SCU_XMC1_H 00062 00063 /*********************************************************************************************************************** 00064 * HEADER FILES 00065 **********************************************************************************************************************/ 00066 00067 #include <xmc_scu.h> 00068 #include <DAVE_Common.h> 00069 #include "CPU_CTRL_XMC1\cpu_ctrl_xmc1.h" 00070 00071 #include "global_scu_xmc1_conf.h" 00072 00077 /*********************************************************************************************************************** 00078 * MACROS 00079 ***********************************************************************************************************************/ 00080 #define GLOBAL_SCU_XMC1_IRQNUM (3U) 00081 00082 #define GLOBAL_SCU_XMC1_EVENT_WDT_WARNING XMC_SCU_INTERRUPT_EVENT_WDT_WARN 00083 #define GLOBAL_SCU_XMC1_EVENT_RTC_PERIODIC XMC_SCU_INTERRUPT_EVENT_RTC_PERIODIC 00084 #define GLOBAL_SCU_XMC1_EVENT_RTC_ALARM XMC_SCU_INTERRUPT_EVENT_RTC_ALARM 00085 #define GLOBAL_SCU_XMC1_EVENT_VDDPI XMC_SCU_INTERRUPT_EVENT_VDDPI 00086 #if defined(COMPARATOR) 00087 #define GLOBAL_SCU_XMC1_EVENT_ACMP0 XMC_SCU_INTERRUPT_EVENT_ACMP0 00088 #define GLOBAL_SCU_XMC1_EVENT_ACMP1 XMC_SCU_INTERRUPT_EVENT_ACMP1 00089 #define GLOBAL_SCU_XMC1_EVENT_ACMP2 XMC_SCU_INTERRUPT_EVENT_ACMP2 00091 #endif 00092 #define GLOBAL_SCU_XMC1_EVENT_VDROP XMC_SCU_INTERRUPT_EVENT_VDROP 00093 #if defined(COMPARATOR) 00094 #define GLOBAL_SCU_XMC1_EVENT_ORC0 XMC_SCU_INTERRUPT_EVENT_ORC0 00095 #define GLOBAL_SCU_XMC1_EVENT_ORC1 XMC_SCU_INTERRUPT_EVENT_ORC1 00096 #define GLOBAL_SCU_XMC1_EVENT_ORC2 XMC_SCU_INTERRUPT_EVENT_ORC2 00097 #define GLOBAL_SCU_XMC1_EVENT_ORC3 XMC_SCU_INTERRUPT_EVENT_ORC3 00098 #define GLOBAL_SCU_XMC1_EVENT_ORC4 XMC_SCU_INTERRUPT_EVENT_ORC4 00099 #define GLOBAL_SCU_XMC1_EVENT_ORC5 XMC_SCU_INTERRUPT_EVENT_ORC5 00100 #define GLOBAL_SCU_XMC1_EVENT_ORC6 XMC_SCU_INTERRUPT_EVENT_ORC6 00101 #define GLOBAL_SCU_XMC1_EVENT_ORC7 XMC_SCU_INTERRUPT_EVENT_ORC7 00102 #endif 00103 #define GLOBAL_SCU_XMC1_EVENT_LOCI XMC_SCU_INTERRUPT_EVENT_LOCI 00104 #define GLOBAL_SCU_XMC1_EVENT_PESRAM XMC_SCU_INTERRUPT_EVENT_PESRAM 00105 #define GLOBAL_SCU_XMC1_EVENT_PEUSIC0 XMC_SCU_INTERRUPT_EVENT_PEUSIC0 00106 #if defined(USIC1) 00107 #define GLOBAL_SCU_XMC1_EVENT_PEUSIC1 XMC_SCU_INTERRUPT_EVENT_PEUSIC1 00108 #endif 00109 #define GLOBAL_SCU_XMC1_EVENT_FLASH_ERROR XMC_SCU_INTERRUPT_EVENT_FLASH_ERROR 00110 #define GLOBAL_SCU_XMC1_EVENT_FLASH_COMPLETED XMC_SCU_INTERRUPT_EVENT_FLASH_COMPLETED 00111 #define GLOBAL_SCU_XMC1_EVENT_VCLIP XMC_SCU_INTERRUPT_EVENT_VCLIP 00112 #define GLOBAL_SCU_XMC1_EVENT_STDBYCLKFAIL XMC_SCU_INTERRUPT_EVENT_STDBYCLKFAIL 00113 #define GLOBAL_SCU_XMC1_EVENT_RTCCTR_UPDATED XMC_SCU_INTERRUPT_EVENT_RTCCTR_UPDATED 00114 #define GLOBAL_SCU_XMC1_EVENT_RTCATIM0_UPDATED XMC_SCU_INTERRUPT_EVENT_RTCATIM0_UPDATED 00115 #define GLOBAL_SCU_XMC1_EVENT_RTCATIM1_UPDATED XMC_SCU_INTERRUPT_EVENT_RTCATIM1_UPDATED 00116 #define GLOBAL_SCU_XMC1_EVENT_RTCTIM0_UPDATED XMC_SCU_INTERRUPT_EVENT_RTCTIM0_UPDATED 00117 #define GLOBAL_SCU_XMC1_EVENT_RTCTIM1_UPDATED XMC_SCU_INTERRUPT_EVENT_RTCTIM1_UPDATED 00118 #define GLOBAL_SCU_XMC1_EVENT_TSE_DONE XMC_SCU_INTERRUPT_EVENT_TSE_DONE 00119 #define GLOBAL_SCU_XMC1_EVENT_TSE_HIGH XMC_SCU_INTERRUPT_EVENT_TSE_HIGH 00120 #define GLOBAL_SCU_XMC1_EVENT_TSE_LOW XMC_SCU_INTERRUPT_EVENT_TSE_LOW 00121 #if defined(CAN) 00122 #define GLOBAL_SCU_INTERRUPT_EVENT_PEMCAN XMC_SCU_INTERRUPT_EVENT_PEMCAN 00123 #endif 00124 #if (UC_SERIES == XMC14) 00125 #define GLOBAL_SCU_XMC1_EVENT_LOSS_EXT_CLOCK XMC_SCU_INTERRUPT_EVENT_LOSS_EXT_CLOCK 00126 #define GLOBAL_SCU_XMC1_EVENT_DCO1_OUT_SYNC XMC_SCU_INTERRUPT_EVENT_DCO1_OUT_SYNC 00127 #define GLOBAL_SCU_XMC1_EVENT_ACMP3 XMC_SCU_INTERRUPT_EVENT_ACMP3 00128 #endif 00129 /*********************************************************************************************************************** 00130 * ENUMS 00131 ***********************************************************************************************************************/ 00132 00140 typedef enum GLOBAL_SCU_XMC1_STATUS 00141 { 00142 GLOBAL_SCU_XMC1_STATUS_SUCCESS = 0U, 00143 GLOBAL_SCU_XMC1_STATUS_FAILURE = 1U 00144 } GLOBAL_SCU_XMC1_STATUS_t; 00145 00153 /********************************************************************************************************************** 00154 * DATA STRUCTURES 00155 **********************************************************************************************************************/ 00156 00160 typedef XMC_SCU_INTERRUPT_EVENT_HANDLER_t GLOBAL_SCU_XMC1_EVENT_HANDLER_t; 00161 00165 typedef XMC_SCU_INTERRUPT_EVENT_t GLOBAL_SCU_XMC1_EVENT_t; 00166 00171 typedef struct GLOBAL_SCU_XMC1_CONFIG 00172 { 00173 uint8_t priority[GLOBAL_SCU_XMC1_IRQNUM]; 00174 bool enable_at_init[GLOBAL_SCU_XMC1_IRQNUM]; 00175 } GLOBAL_SCU_XMC1_CONFIG_t; 00176 00177 00181 typedef struct GLOBAL_SCU_XMC1 00182 { 00183 const GLOBAL_SCU_XMC1_CONFIG_t * config; 00184 bool initialized; 00185 } GLOBAL_SCU_XMC1_t; 00193 /********************************************************************************************************************** 00194 * API PROTOTYPES 00195 ***********************************************************************************************************************/ 00196 00231 DAVE_APP_VERSION_t GLOBAL_SCU_XMC1_GetAppVersion(void); 00232 00247 GLOBAL_SCU_XMC1_STATUS_t GLOBAL_SCU_XMC1_Init(GLOBAL_SCU_XMC1_t *const handle); 00248 00279 GLOBAL_SCU_XMC1_STATUS_t GLOBAL_SCU_XMC1_RegisterCallback(const GLOBAL_SCU_XMC1_EVENT_t event, 00280 const GLOBAL_SCU_XMC1_EVENT_HANDLER_t callback); 00281 00287 __STATIC_INLINE void GLOBAL_SCU_XMC1_EnableIRQ(uint8_t irq_num) 00288 { 00289 NVIC_EnableIRQ((IRQn_Type)irq_num); 00290 } 00291 00297 __STATIC_INLINE void GLOBAL_SCU_XMC1_DisableIRQ(uint8_t irq_num) 00298 { 00299 NVIC_DisableIRQ((IRQn_Type)irq_num); 00300 } 00301 00307 __STATIC_INLINE void GLOBAL_SCU_XMC1_EnableEvent(const GLOBAL_SCU_XMC1_EVENT_t event) 00308 { 00309 XMC_SCU_INTERRUPT_EnableEvent(event); 00310 } 00311 00317 __STATIC_INLINE void GLOBAL_SCU_XMC1_DisableEvent(const GLOBAL_SCU_XMC1_EVENT_t event) 00318 { 00319 XMC_SCU_INTERRUPT_DisableEvent(event); 00320 } 00321 00328 #ifdef __cplusplus 00329 } 00330 #endif 00331 00332 #include "global_scu_xmc1_extern.h" 00333 00334 #endif