Hallo,
bin grad dabei den Watchdog und Eeprom-Speicher das erste mal zu
verwenden und dabei sind einige Fragen aufgekommen, die das
AVR-GCC-Tutorial nicht klärt.
Zum Watchdog:
Der bleibt ja an wenn durch ihn resettet wird und dabei geht dann der
Prescaler flöten und das ganze resettet wieder nach 16ms.
Im Tutorial steht jetzt man soll ihn deshalb nach möglichkeit vor der
Variableninitialisierung zurücksetzen/ausschalten.
Aber in C muss die Variableninitialisierung zuerst kommen oder gibt es
beim uC ausnahmen?
Würde also folgender Codeschnipsel funktionieren?
1 | int(main){
|
2 | wdt_disable();
|
3 | int i=3;
|
4 | while(1);
|
5 | return 0;
|
6 | }
|
Zum Eeprom:
Variablendeklaration via EMMEM attribut, soweit klar.
mit unsigned char status[512] EMEMM;
hätt ich also den ganzen Eeprom vom mega8 8 als array zur verfügung.
Wenn ich jetzt später den Eprom in einem anderen Programm sagen wir nur
zur Hälfte nutze also char status[256] EMEMM;
gehe ich richtig in der Annahme, dass dieses Array den Einträgen 0-255
des alten Arrays entspricht und quasi mit den Werten des Eeprom aus dem
alten Programm "vorinitialisiert" ist?
Wie lange dauert so eine Schreibaktion von einem Char auf den Eeprom?
Ich möchte den Speicher nur zum übertragen von einem Bit zwischen resets
nutzen, schreibt der immer das ganze Byte neu oder sind die einzelnen
Bits 100000 mal beschreibbar?
Womit ist der Eeprom ab Werk "initialisiert"?
Ringpuffer:
Vorinitialisiering des gesamten Eeprom mit 0xFF, gespeichert wird der
Wert in der ersten Zelle die 0xFF als Wert hat, sind alle Zellen nicht
0xFF dann wird der Eeprom neu initialisiert mit 0xFF könnte das so
klappen?
Danke Florian