00001
00061 #ifndef PMIC_DRIVER
00062 #define PMIC_DRIVER
00063
00064 #include "avr_compiler.h"
00065
00066
00067
00069 #define PMIC_EnableLowLevel() (PMIC.CTRL |= PMIC_LOLVLEN_bm)
00070
00071
00073 #define PMIC_DisableLowLevel() (PMIC.CTRL &= ~PMIC_LOLVLEN_bm)
00074
00075
00077 #define PMIC_EnableMediumLevel() (PMIC.CTRL |= PMIC_MEDLVLEN_bm)
00078
00079
00081 #define PMIC_DisableMediumLevel() (PMIC.CTRL &= ~PMIC_MEDLVLEN_bm)
00082
00083
00085 #define PMIC_EnableHighLevel() (PMIC.CTRL |= PMIC_HILVLEN_bm)
00086
00087
00089 #define PMIC_DisableHighLevel() (PMIC.CTRL &= ~PMIC_HILVLEN_bm)
00090
00091
00093 #define PMIC_EnableRoundRobin() (PMIC.CTRL |= PMIC_RREN_bm)
00094
00095
00097 #define PMIC_DisableRoundRobin() (PMIC.CTRL &= ~PMIC_RREN_bm)
00098
00099
00100
00112 #define PMIC_SetNextRoundRobinInterrupt(_vectorAddress) (PMIC.INTPRI = (_vectorAddress >> 2) - 1)
00113
00114
00115
00120 #define PMIC_IsHighLevelExecuting() (PMIC.STATUS & PMIC_HILVLEX_bm)
00121
00122
00123
00128 #define PMIC_IsMediumLevelExecuting() (PMIC.STATUS & PMIC_MEDLVLEX_bm)
00129
00130
00131
00136 #define PMIC_IsLowLevelExecuting() (PMIC.STATUS & PMIC_LOLVLEX_bm)
00137
00138
00139
00144 #define PMIC_IsNMIExecuting() (PMIC.STATUS & PMIC_NMIEX_bm)
00145
00146
00147
00148
00149
00150 void PMIC_SetVectorLocationToBoot( void );
00151 void PMIC_SetVectorLocationToApplication( void );
00152
00153 #endif