Gast
#1146782
Moin moin, bevor ich jetzt ins Wochenende gehe, hätte ich gerne von euch noch ein "Wie blöd bist du denn" gehört ;) Ich habe - neben vielem anderen - in meinem Code folgende Schnipsel:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Die "umgekehrte Reihenfolge" der Parameter ist mMn richtig (andererseits sitze ich auch schon länger hier vor dem Rechner) - siehe http://www.gnu.org/savannah-checkouts/non-gnu/avr-libc/user-manual/group__avr__eeprom.html (oder wurde das erst zwischen 1.6.2 und heute geändert?) Wo könnte noch ein Fehler liegen, der eeprom_write_block fehlschlagen lässt, wo eeprom_write_byte an derselben Stelle mit denselben Adressen einwandfrei funktioniert? (Funktion bzw. Nichtfunktion nachgewiesen durch avrdude -t ... und dann am Prompt "r eeprom") Kompiliert wird das ganze (über WinAVR-Makefile) mit avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=myeeprom.lst -std=gnu99 -DF_CPU=16000000 -MD -MP -MF .dep/myeeprom.o.d myeeprom.c -o myeeprom.o Meine Version der avr-libc und des avr-gcc stehen oben. Fällt einem von euch irgendwas typisches ein, das ich vergessen haben könnte? EEPROM-Waitstates bei 16MHz, die von der einen Funktion automatisch eingefügt werden, von der anderen nicht, oder sowas? Oder ist das gar ein bekannter Bug, den ich nur beim googlen nicht gefunden habe? Vielen Dank für alle Anregungen, MfG, Heiko (Das ganze soll in eine Funktion, die eine Queue von ins EEPROM zu schreibenden Daten zyklisch abarbeitet - um die Latenzen kürzer zu halten, kann ich nicht sofort nach Änderung die Änderung ins EEPROM schreiben - ansonsten könnte ich wunderbar mit eeprom_write_byte leben)