Hallo!
Ich versuche Momentan in einem Programm ein paar Messungen durchzuführen
und die Werte dann zu speichern um sie nach einem Reset wieder laden zu
lassen. Das Ganze klappt auch, nur weiß ich nicht wirklich ob das alles
so simmt, und das Tutorial hierzu ist auch sehr kurz. Hier mal der
(Pseudo)Code:
1 | #include <avr/eeprom.h>
|
2 |
|
3 | #define EEMEM __attribute__ ((section (".eeprom")))
|
4 |
|
5 | uint8_t InitWert_A = 10;
|
6 | uint8_t Speicher_A EEMEM = 0;
|
7 | volatile uint8_t Aktuell_A;
|
8 |
|
9 | void ausschalten (void) {
|
10 | eeprom_write_byte(&Speicher_A, Aktuell_A);
|
11 | }
|
12 |
|
13 | void einschalten(void) {
|
14 | if (Speicher_A != 0) InitWert_A = eeprom_read_byte(&Saved_Value_A);
|
15 | }
|
16 |
|
17 | int main (void) {
|
18 |
|
19 | Aktuell_A = ADC; // Wert vom ADC übergeben
|
20 |
|
21 | }
|
Kann man das so machen?
Wie kann ich den InitWert jetzt "von außen" setzen nach dem er durch das
EEPROM "deaktiviert" wurde in der Einschaltfunktion? Sollte ich da ein
Flag für die Verwendung des EEPROM Wertes setzen? Ich habe das gefühl,
dass jedes mal beim neu programmieren das EEPROM "gelöscht" wird; habe
das aber bei "Auto" im AVR Studio nicht aktiviert. Was passiert da?
Wär super wenn einer mal helfen könnte.
Ich danke euch schonmal.
Markus