unsigned char WriteEEPROM(unsigned char *pData, unsigned char keyno) { unsigned char keys = 0; unsigned char keysl = 0; unsigned char bytes = 0; unsigned char counter = 0; unsigned char returnvalue = 0; if(keyno == 1){ //Taster/Ausgang 1 keys = 0; keysl = 4; } else if(keyno == 2) //Taster/Ausgang 2 { keys = 4; keysl = 8; } else if(keyno == 3) //Taster/Ausgang 3 { keys = 8; keysl = 12; } else if(keyno == 4) //Taster/Ausgang 4 { keys = 12; keysl = 16; } for(keys; keys < keysl; keys++) { for(bytes = 0; bytes < 8; bytes++) { if(eeprom_read((keys * 8) + bytes) == 0xFF) counter++; } if(counter == 8) break; else counter = 0; } for(bytes = 0; bytes < 8; bytes++) { eeprom_write(((keys * 8) + bytes), pData[bytes]); } if(counter == 8) returnvalue = 1; else returnvalue = 0; return returnvalue; } unsigned char CheckEEPROM(unsigned char *pData) { //Deklaration + Initialisierung für iButton1 unsigned char keys = 0; unsigned char bytes = 0; unsigned char counter = 0; unsigned char returnvalue = 0; //prüfen, ob es der 1. Kanal ist for(keys = 0; keys < 4; keys++) { for(bytes = 0; bytes < 8; bytes++) { if(eeprom_read((keys << 3) + bytes) == pData[bytes]) counter++; } if(counter == 8) break; else counter = 0; } if(counter == CORRECT) returnvalue = 1; else { //ENDE: prüfen, ob es der 1.Kanal ist //ansonsten prüfen, ob es der 2. Kanal ist for(keys = 4; keys < 8; keys++) { for(bytes = 0; bytes < 8; bytes++) { if(eeprom_read((keys << 3) + bytes) == pData[bytes]) counter++; } if(counter == 8) break; else counter = 0; } if(counter == CORRECT) returnvalue = 2; else { //ansonsten prüfen, ob es der 3 Kanal ist for(keys = 8; keys < 12; keys++) { for(bytes = 0; bytes < 8; bytes++) { if(eeprom_read((keys << 3) + bytes) == pData[bytes]) counter++; } if(counter == 8) break; else counter = 0; } if(counter == CORRECT) returnvalue = 3; else { //ansonsten prüfen, ob es der4. Kanal ist for(keys = 12; keys < 16; keys++) { for(bytes = 0; bytes < 8; bytes++) { if(eeprom_read((keys << 3) + bytes) == pData[bytes]) counter++; } if(counter == 8) break; else counter = 0; } if(counter == CORRECT) returnvalue = 4; } } } return returnvalue; }