【 3D 프린터 챔버 만들기 】
[ Control Board 제작 #14 : EEPROM에 설정값 저장하고 불러오기 ]
□ 필요 사항
: uint8_t EEPROM.read(int idx) => EEPROM에서 데이터 읽기
: void EEPROM.update(int idx, uint8_t val) => 해당 주소에 저장된 데이터와 쓸 데이터가 다를 경우에만
EEPROM에 데이터 쓰기
[ EEPRROM용 함수 작성 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | typedef struct { // Length 27 char firstRun; int Temp_ControlMode; int Temp_Target; int Door_Ventil_Pos_Max; int Door_Ventil_Pos_Min; int Door_Filter_Pos_Max; int Door_Filter_Pos_Min; int Door_Ventil_Angle; int Door_Filter_Angle; int Door_Ventil_Speed; int Door_Filter_Speed; int Light_ControlMode; int Light_Sensitivity; int Light_InitailStatus; } DEVICEPARAM, *pDEVICEPARAM; DEVICEPARAM g_Param; #define EEPROM_ADDRESS 995 // Max 1024 void WriteEEPROM(DEVICEPARAM* pParam) { uint8_t* buf = (uint8_t*)pParam; pParam->firstRun = 1; for(unsigned int i=0; i<sizeof(DEVICEPARAM); i++) { EEPROM.update(i+EEPROM_ADDRESS, buf[i]); } } void ReadEEPROM(DEVICEPARAM* pParam) { uint8_t* buf = (uint8_t*)pParam; for(unsigned int i=0; i<sizeof(DEVICEPARAM); i++) { buf[i] = EEPROM.read(i+EEPROM_ADDRESS); } } | cs |