Hallo,
in meinem kleinen Programm wird eine Zahl im Eeprom des ATtiny84
abgespeichert. Das funktioniert so, aber ich bin zufällig
daraufgekommen,
das die Zahl ab 0x82 im Eeprom gespeichert wird, siehe Anhang.
Dieser eeprom_read_block Funktion übergibt man
einen Zeiger auf die Quelle, einen Zeiger auf das Ziel im Eeprom
und die Anzahl der Bytes.
Wenn ich anstelle von &ee_Frequenz 0 schreibe,
wird meine Zahl ab 0x00 im Eeprom gespeichert.
Für 1 bis 3 Variablen kann ich das ja noch von Hand machen, aber wie
würde ich das vernünftig machen, das der Compiler Bescheid weiss:
diese Variablen liegen im Eeprom
1 | unsigned long long int Frequenz,ee_Frequenz;
|
2 | //*********************************************************************
|
3 | int main(void)
|
4 | {
|
5 | eeprom_read_block(&Frequenz,&ee_Frequenz,sizeof(Frequenz));
|
6 |
|
7 | // hier steht noch einiges, was jetzt nicht's zur Sache tut
|
8 |
|
9 | while(1)
|
10 | {
|
11 |
|
12 | // hier steht noch einiges, was jetzt nicht's zur Sache tut
|
13 |
|
14 |
|
15 | while(get_Taste() != 11){} // warte auf Taste "New"
|
16 | Frequenz = Zahl_eingeben();
|
17 | eeprom_write_block(&Frequenz,&ee_Frequenz,sizeof(Frequenz));
|
18 |
|
19 | }
|