Gast
#2977151
Hallo, ich habe ein längeres Programm geschrieben, in welchem unter anderem ein Zufallszahlengenerator zum Einsatz kommt. Damit nicht nach jedem Reset usw. die gleichen Zufallszahlen geliefert werden lese ich beim Start jeweils einen Seed aus dem EEPROM aus und schreibe die nächste erzeugte Zufallszahl ins EEPROM zurück. Ursprünglich benötigte ich nur 8-Bit Zufallszahlen, hier klappte das Ganze wunderbar mit "eeprom_read_byte" bzw. "eeprom_write_byte". Nun benötige ich aber 16-Bit Zufallszahlen, und hier funktioniert das Speichern mittels "eeprom_write_word" überhaupt nicht mehr, bei jedem Reset/Neustart wird wieder die gleiche Sequenz erzeugt. Ich habe das Ganze dann im Simulator nachvollzogen, und auch hier ist es so, dass ich bis zu "eeprom_write_word" steppen kann und der Simulator anschließend in einer Art Endlosschleife landet. Da ich auch den Watchdog usw. nutze habe ich das Programm nun auf das Nötigste abgespeckt (u.a. auch wieder den Standard-Zufallszahlengenerator), und auch hier funktioniert das Schreiben ins EEPROM nicht. Hat jemand eine Idee, was schief gehen kann? Anbei mein minimales Testprogramm, Der Inhalt der Header-Datei entspricht den ersten drei Zeilen. Entwickelt habe ich für einen Attiny44A mit AtmelStudio 6. Compiler-Optimierungen waren ursprünglich auf "-Os", bei der Fehlersuche habe ich sie jedoch auf "-O0" gesetzt.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
Viele Grüße, Sven