Guten Abend... ich habe ein Verständnisproblem bzgl. des EEProms bzw. der Adressierung. Wenn ich das richtig verstehe hat der mega8 einen 16-Bit Adressbus fürs EEPROM. Ich schreibe die Adresse ja in zwei Register. Dazu benutze ich die low() und high() Funktionen des Assemblers. Jetzt stellt sich mir die Frage wie ich die Adresse am einfachsten incrementiert bekomme. Das benötige ich doch um Strings aus dem Ram übers UART zu senden. Den Befehl inc kann ich nicht verwenden, da ich die Adresse nicht in ein Register bekomme... Wie wird diese Problem üblicherweise gelöst? Weiss wie gesagt nicht ob ich das alles schon ordentlich verstanden habe, vielleiicht könnt ihr mir helfen das zu handhaben... Vielen Dank Sven P.S.: Das AVR Speicher Tutorial konnte mir nicht helfen, da das Beispiel von einem Controller mit 8-Bit Datenbus stammt. Die Suche führte ebenfalls zu keinem brauchbaren Ergebnis.
Du mußt nur das LOW-Byte der Adresse inkrementieren. Erst wenn es überläuft-zu Null wird, mußt du das HIGH-Byte einmal inkrementieren. Dann wieder das LOW-Byte........usw....usw.......
Also muss ich nach jedem inkrementieren des LOW Bytes abfragen ob es 0 geworden ist und ggf. das HIGH Byte zusätzlich inkrementieren... Danke schonmal, müsste hinzukriegen sein mit meinem "Basiswissen" ;)
Hi z.B. mit ADIW und den Doppelregistern R24, R26, R28 und R30 Matthias
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.