/******************************************************************************************************** ** HY3106常数与子程序定义头文件 ** ** Copyright (c) Siargo, Ltd. 2011 ** All Rights Reserved. ** **------------------------------------------------------------------------------------------------------- ********************************************************************************************************/ #ifndef __SavingData_h__ #define __SavingData_h__ //****************************************************************************** // for memory WIDTH //****************************************************************************** //****************************************************************************** // for data eeprom ---[For 24c512]---------------------------------------------- // DATE REC DATA // NO.0 ([YEAR] [MONTH] [DATE] [HOUR] [MINUTE] + 间隔1小时保存时间 // Max addr: 0x300+12*1000 (0x2ee0) = 0x31e0 #define DATE_POINTER (unsigned int)0x300 // DATE record start ponit addr #define DATE_POINTER_WIDTH (unsigned int)3 #define DATE_POINTER_CRC (unsigned int)(DATE_POINTER_WIDTH-1) #define DATE_BASE (unsigned int)(DATE_POINTER+DATE_POINTER_WIDTH) #define DATE_WIDTH (unsigned int)12 // DATE record start eeprom addr #define DATE_WIDTH_CRC (unsigned int)(DATE_WIDTH-1) #define DATE_DEPTH (unsigned int)1000 // ALARM DATA // NO.0 出厂前MEMS参数保存(硬件调试) // No.1-No.599 实时保存报警数据 // Max addr: 0x3200 + 16*1000 (0x3e80) = 0x7080 #define ALARM_POINTER (unsigned int)0x3100 // alarm record start ponit addr #define ALARM_POINTER_WIDTH (unsigned int)3 #define ALARM_POINTER_CRC (unsigned int)(ALARM_POINTER_WIDTH-1) #define ALARM_BASE (unsigned int)(ALARM_POINTER+ALARM_POINTER_WIDTH) // alarm record start eeprom addr #define ALARM_WIDTH (unsigned int)26 #define ALARM_WIDTH_CRC (ALARM_WIDTH-1) #define ALARM_DEPTH (unsigned int)600 // HISTORY DATA // NO.0 工厂传感器数据 (NRH,LRH,(RR//RH), NIDX ) // No.1-No.2000 历史正常记录数据 // Max addr: 0x7100 + 18*2000 (0x8ca0) = 0xffa0 #define HISTORY_POINTER (unsigned int)0x7100 // history record start ponit addr #define HISTORY_POINTER_WIDTH (unsigned int)3 #define HISTORY_POINTER_CRC (unsigned int)(HISTORY_POINTER_WIDTH-1) #define HISTORY_BASE (unsigned int)(HISTORY_POINTER+HISTORY_POINTER_WIDTH) // history record start eeprom addr #define HISTORY_WIDTH (unsigned int)18 #define HISTORY_WIDTH_CRC (unsigned int)(HISTORY_WIDTH-1) #define HISTORY_DEPTH (unsigned int)2000 //****************************************************************************** // for memory WIDTH #define RECORD_TIME_WIDTH 6 #define RECORD_TIME_CRC (RECORD_TIME_WIDTH-1) //****************************************************************************** extern u16 historyPeriodSet,saveTimeCounter;; //****************************************************************************** void SaveParameterInit(void); void CopyTimeToBackUpArray(u8 *backups); void CopyAccToBackUpArray(u8 *backups); u16 WriteaAnAlarmData(u16 pointer); u16 AlarmWrite(void); void ClearAlarmRecord(void); void ClearHistoryRecord(void); void ClearDateRecord(void); void SetHistoryRecordTime(void); void WriteRecordTimeData(void); u16 ReadRecentHistoryData(u8 *recent); u16 WriteAnHistoryData(u16 pointer); u16 HistoryRecordWrite(void); u16 ReadRecentDateAccData(u8 *recent); u16 DateAccWrite(void); void DataStorageManagement(void); void ReadRecordToComBuf(void); /*******************/ #endif