Gast
#851345
Hallo Leute, ich bin gerade auf einen sehr merkwürdiges Verhalten der GCC Bibliothek <avr/eeprom.h> gestoßen. Schreiben und Lesen des EEPROMS an einer bestimmten Speicherstelle innerhalb einer Funktion geht. Werden das lesen/schreiben in eine Unterfunktion ausgelagert, geht es nicht mehr. Randdaten: AVR-Studio 4.14, GCC 20080411, ATmega8535 Beispielprogramm welches das Verhalten an den Tag legt (Die Ausgabe, bei mir RS232, muß man sich halt nochmal selbst anpassen):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
Jemand eine Idee? - Ich meine es geht zum Beispiel auch wenn ich sowohl addr und value als Pointer übergebe... nettes Workaround, aber für mich nicht praktikabel. - Im Tutorial steht man sollte den gesamten EEPROM als ein großes Array definieren, und die einzelnen Elemente dann als Adresse interpretieren... Auch ein nettes Workaround, wahrscheinlich werde ich es nun auch so machen. Aber gibt es eine logische oder bekannte Erklärung für diesen "Fehler", sofern es einer ist... Gruß Ralf