- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Asuro und eeprom

  1. #11
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Anzeige

    Praxistest und DIY Projekte
    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.
    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.
    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
    Software is like s e x: its better when its free.
    Linus Torvald

  2. #12
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    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.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    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
    Software is like s e x: its better when its free.
    Linus Torvald

  4. #14
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    hmm na wenn man den GCC nicht bemühen will da 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...)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    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
    Software is like s e x: its better when its free.
    Linus Torvald

  6. #16
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    38
    Beiträge
    4.068
    na dafür lohnt sich das nicht, aber allgemein fürs eeprom schreiben/lesen.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Naja ich kämpfe im Moment noch mit der neuen lib
    So ein Shit, man braucht nach wie vor die asuro.c(es lebe die Forumsuche ),
    jetzt klappt es, die lib steht
    weiter geht es mit der myasuro.h ...

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test