hmmm,
ich habe mal im Assembleroutput gewühlt und die Implementierung von eeprom_read_word gefunden, hier der Auszug:
Code:
00000206 <__eeprom_read_word_1C1D1E>:
206: 04 d0 rcall .+8 ; 0x210 <__eeprom_read_byte_1C1D1E>
208: e0 2d mov r30, r0
20a: 02 d0 rcall .+4 ; 0x210 <__eeprom_read_byte_1C1D1E>
20c: f0 2d mov r31, r0
20e: 08 95 ret
00000210 <__eeprom_read_byte_1C1D1E>:
210: e1 99 sbic 0x1c, 1 ; 28
212: fe cf rjmp .-4 ; 0x210 <__eeprom_read_byte_1C1D1E>
214: bf bb out 0x1f, r27 ; 31
216: ae bb out 0x1e, r26 ; 30
218: e0 9a sbi 0x1c, 0 ; 28
21a: 11 96 adiw r26, 0x01 ; 1
21c: 0d b2 in r0, 0x1d ; 29
21e: 08 95 ret
Es wird, wer hätte das gedacht eeprom_read_byte verwendet und zwar
Code:
00000210 <__eeprom_read_byte_1C1D1E>:
210: e1 99 sbic 0x1c, 1 ; 28
212: fe cf rjmp .-4 ; 0x210
214: bf bb out 0x1f, r27 ; 31
216: ae bb out 0x1e, r26 ; 30
218: e0 9a sbi 0x1c, 0 ; 28
21a: 11 96 adiw r26, 0x01 ; 1
21c: 0d b2 in r0, 0x1d ; 29
Also ganz nach Dattenblatt, es wird am Anfang wohl eepromready gepollt,
da hast Du recht.
Ringpuffer und Interruptsteuerung ist natürlich was feines, kostet aber auch Zeit, vielleicht ist es sinnvoller die eepromdaten beim Programmstart in Ram zu laden, so viele sind es nicht...
Naja ich kämpfe im Moment noch mit der neuen lib
(
Meine liebste Frau hat mir einen neuen Laptop geschenkt \
/ da dachte ich mir Win Nixda(vista) eine Chance zu geben, deswegen ist es doppelt so schwer für mich, als Linux User)
Gruß Sebastian
Lesezeichen