The fuses were set to HfuseDF and Lfuse62 on the ATTiny with arduino as ISP. But when I press "S" to print the Serial Number it send garbage data.
#include <SoftSerial.h>
#include <EEPROM.h>
//---------------------------------------------------
#define SW 1
long value;
char buf[3];
SoftSerial mySerial(4,3);
void setup()
{
mySerial.begin(9600);
delay(10);
pinMode(SW, INPUT_PULLUP);
value = EEPROMReadlong();
//value = 374;AD]
mySerial.print(value, DEC);
}
//===================================================
void loop()
{
delay(10);
if(!digitalRead(SW)){
mySerial.print("f;");
while(!digitalRead(SW));
}
while(mySerial.available()){
char t = mySerial.read();
if(t == 'C'){
mySerial.readBytes(buf, 3);
value = (buf[0] - '0') * 100;
value += (buf[1] - '0') * 10;
value += (buf[2] - '0');
//mySerial.print(value, DEC);
EEPROMWritelong(value);
delay(10);
value = EEPROMReadlong();
mySerial.print(value, DEC);
}
if(t == 'S'){
delay(10);
mySerial.print("10100012024S;");
mySerial.print(value);
mySerial.print(";");
}
delay(10);
}
}
long EEPROMReadlong() {
byte four = EEPROM.read(0);
byte three = EEPROM.read(1);
return ((four << 0) & 0xFF) + ((three << 8) & 0xFFFF);
}
void EEPROMWritelong(long value) {
byte four = (value & 0xFF);
byte three = ((value >> 8) & 0xFF);
EEPROM.write(0, four);
EEPROM.write(1, three);
}