Jag håller på med en timelaps controller till en digitalkamera.
Nu är jag nästan klar och det sista jag ska fixa är att man ska kunna spara inställningar till eeprom.
Men det fungerar inte, jag tror det har någon med saveFunction att göra.
Snälla, kan någon kolla lite på utdragen av min kod och se om ni hittar felet?
Tack!
Kod: Markera allt
if (saveSlot == 1){
eeprom_addr = 10; //set start address
}
//Write eeprom (Saveslot 2)
if (saveSlot == 2){
eeprom_addr = 50; //set start address
}
//Write eeprom (Saveslot 3)
if (saveSlot == 3){
eeprom_addr = 100; //set start address
}
void saveFunction();
Kod: Markera allt
//Write eeprom function
void saveFunction(){
eepromTemp = startdelayH; //copy Value to temp storage
times = 0; // Zero counter
while(times < 4){ // do 4 times
times++; //add 1 to the counter
if (eepromTemp > 255){ //check size
EEPROM.write(eeprom_addr, 255); //write 255 to eeprom
eepromTemp = eepromTemp - 255; //subtract 255 from temp value
}
else{ //if value lover than 255
EEPROM.write(eeprom_addr, eepromTemp); //write value to eeprom
eepromTemp = 0; //Zero temp value
}
eeprom_addr++; //go to next eeprom_address
delay(5); //wait for eeprom to be ready for more data
}
EEPROM.write(eeprom_addr, startdelayM);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, startdelayS);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, shuttertimeM);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, shuttertimeS);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
eepromTemp = frameIntervalH; //copy Value to temp storage
times = 0; // Zero counter
while(times < 4){ // do 4 times
times++; //add 1 to the counter
if (eepromTemp > 255){ //check size
EEPROM.write(eeprom_addr, 255); //write 255 to eeprom
eepromTemp = eepromTemp - 255; //subtract 255 from temp value
}
else{ //if value lover than 255
EEPROM.write(eeprom_addr, eepromTemp); //write value to eeprom
eepromTemp = 0; //Zero temp value
}
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
}
EEPROM.write(eeprom_addr, frameIntervalM);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, frameIntervalS);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, focustimeS);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
eepromTemp = timelapseH; //copy Value to temp storage
times = 0; // Zero counter
while(times < 4){ // do 4 times
times++; //add 1 to the counter
if (eepromTemp > 255){ //check size
EEPROM.write(eeprom_addr, 255); //write 255 to eeprom
eepromTemp = eepromTemp - 255; //subtract 255 from temp value
}
else{ //if value lover than 255
EEPROM.write(eeprom_addr, eepromTemp); //write value to eeprom
eepromTemp = 0; //Zero temp value
}
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
}
EEPROM.write(eeprom_addr, timelapseM);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, timelapseS);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
EEPROM.write(eeprom_addr, focusandshutter);
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
eepromTemp = shutterpulse; //copy Value to temp storage
times = 0; // Zero counter
while(times < 4){ // do 4 times
times++; //add 1 to the counter
if (eepromTemp > 255){ //check size
EEPROM.write(eeprom_addr, 255); //write 255 to eeprom
eepromTemp = eepromTemp - 255; //subtract 255 from temp value
}
else{ //if value lover than 255
EEPROM.write(eeprom_addr, eepromTemp); //write value to eeprom
eepromTemp = 0; //Zero temp value
}
eeprom_addr++;
delay(5); //wait for eeprom to be ready for more data
}
} //END SAVE FUNCTION