![]() |
Energy Micro IEC60355 Library Project 1.037 GCC-Version
IEC60355 Library documentation and API
|
00001 /***************************************************************************/ 00028 #ifndef __IEC60335_CLASS_B_TYPEDEF_H__ 00029 #define __IEC60335_CLASS_B_TYPEDEF_H__ 00030 00031 #include <stdint.h> 00032 #include <stdbool.h> 00033 00034 #ifdef __cplusplus 00035 extern "C" 00036 { 00037 #endif /* __cplusplus */ 00038 00039 typedef enum testResult_enum 00040 { 00041 IEC60335_testFailed = 0, 00042 IEC60335_testPassed = 1, 00043 IEC60335_testInProgress = 2 00044 } testResult_t; 00045 00046 typedef enum testState_enum 00047 { 00048 IEC60335_stateDone = 0, 00049 IEC60335_statePending = 1, 00050 IEC60335_stateInProgress = 2 00051 } type_testState_t; 00052 00053 typedef enum testStart_enum 00054 { 00055 IEC60335_stop = 0, 00056 IEC60335_start = 1 00057 } type_testStart_t; 00058 00059 /* CPU register test */ 00060 typedef struct 00061 { 00062 unsigned int testState; 00063 testResult_t testResult; 00064 } IEC60335_CPUreg_struct; 00065 00066 /* clock test */ 00067 typedef struct ClkTest_struct 00068 { 00069 uint32_t Ratio; 00070 uint32_t Tolerance; 00071 uint32_t timerCounter; 00072 uint32_t baseTicks; 00073 uint32_t result; 00074 } ClockTest_t; 00075 00076 /* Interrupt test */ 00077 #define _VAL_A 0x01234567 00078 #define _VAL_B 0x12345678 00079 #define _VAL_C 0x23456789 00080 #define _VAL_D 0x3456789A 00081 #define _VAL_E 0x456789AB 00082 #define _VAL_F 0x56789ABC 00083 #define _VAL_G 0x6789ABCD 00084 /* possible return values */ 00085 enum _ReturnValues 00086 { 00087 VAL_A = _VAL_A, 00088 VAL_B = _VAL_B, 00089 VAL_C = _VAL_C, 00090 VAL_D = _VAL_D, 00091 VAL_E = _VAL_E, 00092 VAL_F = _VAL_F, 00093 VAL_G = _VAL_G, 00094 }; 00095 typedef enum _ReturnValues IEC60335_B_PCTest_ReturnValues; 00096 00100 typedef struct 00101 { 00102 uint32_t Active; 00103 uint32_t Mode; 00104 } IEC60335_IRQ_Test_t; 00105 00112 typedef struct 00113 { 00114 uint32_t EffectiveCount; 00115 uint32_t MinThres; 00116 uint32_t MaxThres; 00117 } IRQTestData_t; 00118 00119 /* Program Counter test */ 00120 struct _Data 00121 { 00122 IEC60335_B_PCTest_ReturnValues ret; 00123 uint32_t number; 00124 }; 00125 typedef struct _Data Data_t; 00126 00127 typedef IEC60335_B_PCTest_ReturnValues (*Exec_t)(Data_t *data); 00128 00129 00130 /* Flash test */ 00131 typedef struct IEC60335_FlashSign 00132 { 00133 uint32_t CRC32Val; 00134 uint32_t MemLenght; 00135 uint32_t NextAddress; 00136 uint32_t BlockSize; 00137 uint32_t Status; 00138 } FlashCRC_t; 00139 00140 #define MIN(a, b) ((a < b) ? a : b) 00141 #define MAX(a, b) ((a > b) ? a : b) 00142 #define CUT(a, b, c) (MAX(a, MIN(b, c))) 00143 #define IsInRange(a, b, c) ((CUT(a, b, c) == b) ? true : false) 00145 #ifdef __cplusplus 00146 } 00147 #endif /* __cplusplus */ 00148 00149 #endif /* __IEC60335_CLASS_B_TYPEDEF_H__ */