kleiner tipp zum eeprom:
wenn man es einfach haben will, kann man die demo-funktionen aus dem datenblatt des mega8 direkt übernehmen, sie funktionieren ohne anpassung.
Ich werde mir als nächstes die neueste Asurolib installieren(gut daß Du irgendwo eine Beschreibung gepostet hast, ich habe nähmlich bis jetzt noch keine libs gebaut) und dieses Programm was die Werte für myasuro.h selbst ermitelt.Jetzt ist es noch für die Asuro-Lib interessant welcher Vorraussetzungen notwendig sind. Denn die Idee ist ja nun mal schon seit einiger Zeit da einiges im EEPROM abzulegen.
Dann versuche ich das ganze ein wenig umzuschreiben.
Das einzigste Problemchen ist ja, daß der Zugriff auf eeprom etwas langsammer ist, als Zugiff auf SRAM, ich meine aber das fällt nicht so ins Gewicht.
Anders ist es, wenn die Werte in myasuro.h liegen, da werden sie ja als Konstante behandelt und müssen nicht extra aus Sram oder Eeprom geladen werden.
Mal sehen, werde jetzt mal die lib installieren.
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
kleiner tipp zum eeprom:
wenn man es einfach haben will, kann man die demo-funktionen aus dem datenblatt des mega8 direkt übernehmen, sie funktionieren ohne anpassung.
Hallo Damaltor, leider kann ich Dir nicht folgen, wie meinst Du das mit 'ohne Anpassung'
in avr-gcc gibt es doch fertige Lösungen, die unter eeprom.h zu finden sind,
warum soll man nach dem Dattenblatt gehen, bei Assembler gib ich Dir recht, aber bei C ?
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
hmm na wenn man den GCC nicht bemühen willda sind zwei kurze funktionen drin, die man eins zu eins kopieren kann. die nehm ich meistens. aber interessant wäre mal eine interruptgesteuerte ansteuerung des eeproms..
mmh..
ich liebe interrupts... bei mir läuft I2C und UART auch schon mit einem ringpuffer mit je 32 bytes, die dann interruptgesteuert abgeschickt werden...
da müsste auch eeprom-mäßig was machbar sein. werd mich mal dransetzen, falls du sowas möchtest/brauchen kannst.
vorteil: während der eeprom geschrieben wird, kann der prozessor sinnvolleres tun als das ready-bit zu pollen. nachteil: 32bytes sram sind weg (oder jede andere menge die du möchtest...)
hmmm,
ich habe mal im Assembleroutput gewühlt und die Implementierung von eeprom_read_word gefunden, hier der Auszug:
Es wird, wer hätte das gedacht eeprom_read_byte verwendet und zwarCode: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
Also ganz nach Dattenblatt, es wird am Anfang wohl eepromready gepollt,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
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
Linus TorvaldSoftware is like s e x: its better when its free.
na dafür lohnt sich das nicht, aber allgemein fürs eeprom schreiben/lesen.
So ein Shit, man braucht nach wie vor die asuro.c(es lebe die ForumsucheNaja ich kämpfe im Moment noch mit der neuen lib),
jetzt klappt es, die lib steht![]()
weiter geht es mit der myasuro.h ...
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Lesezeichen