#include #include #include #include #include #include #include #if !defined(FAULTLOG_EEBASE) #define FAULTLOG_EEBASE 0x0000 #endif #if !defined(FAULTLOG_WIDTH) #define FAULTLOG_WIDTH 9 #endif static int32_t flog_base = FAULTLOG_EEBASE; static int flog_width = FAULTLOG_WIDTH; static int flog_current = 0; static int flog_current_rd; static fault_entry_t current_fault_entry; static fault_entry_t current_fault_entry_rd; void init_faultlog(void) { uint16_t n; uint32_t lastOnPower = 0; for (n=0;n < (1< current_fault_entry.tcOnPower) ){ flog_current = n; break; }; }; }; void faultlog_record(uint8_t faultcode,int32_t parm1,int32_t parm2) { current_fault_entry.tcOnPower = rt_ram.eeprom.secs_powered; current_fault_entry.tcRun = rt_ram.eeprom.secs_running; current_fault_entry.fault_code = faultcode; current_fault_entry.parm1 = parm1; current_fault_entry.parm2 = parm2; i2cee_save( flog_base + (flog_current * sizeof(fault_entry_t)), ¤t_fault_entry, sizeof(fault_entry_t) ); flog_current++; flog_current &= (1<