GLOBAL_SCU_XMC1: GLOBAL_SCU_XMC1.h Source File

GLOBAL_SCU_XMC1

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