Hi ich habe folgendes Problem ich versuche was im EEPROM an der adresse $B7f5 zu speichern aber es kommt zu einer Fehlermeldung (HC11E1) -----> Assembler ORG $B600 ; Start of EEPROM ldx $B7f0 staa 5,x ; put the data there () ldx $B7f0 ldaa 5,x ; get the data wo konnte das problem liegen?
Hi Stephanie, schau bitte unter AVR im Tutorial nach. Dein Programm muss weiterhin im Flash stehen und der Zugriff erfolgt nur über Pointer. Beispielcodes gibts im Tutorial. Gruß Alexander
Hi Alexander ich habe das Tutorial gelesen.aber ich kann doch meine Daten im internen (On CHIP EEPROM ) speichern oder ich hätte gerne das im Assembler ich denke mein Code ist richtig aber wo der Fehler liegt weiss ich nicht
Alexander Liebhold wrote: > schau bitte unter AVR im Tutorial nach. Der HC11 ist aber absolut kein AVR, weshalb ihr das Tut hier nicht wirklich weiterhelfen dürfte...
Hi Johannes das weiss ich dass der HC11 kein HC11 ist hast du einen Vorschlag?
Stephanie wrote: > Hi Johannes das weiss ich dass der HC11 kein HC11 ist > hast du einen Vorschlag? Doch, der HC11 ist ein HC11. Und der Kommentar bezog sich auf Alexanders Posting. Und nein, ich kann Dir nicht weiterhelfen, da ich mich mit HC11 nicht auskenne. Ich bin nur in diesem Thread gelandet, weil Du offensichtlich die Forenregeln nicht gelesen hast und den Controllertyp nicht im Betreff angegeben hast...
Stephanie wrote: > ich versuche was im EEPROM an der adresse $B7f5 zu speichern aber es > kommt zu einer Fehlermeldung Ich kenne den HC11 im speziellen nicht, aber in der Regel hat eine Fehlermeldung auch immer einen Wortlaut und der sagt ziemlich genau aus, wo den Assembler der Schuh drückt. Wenn Dein Problem der englische Wortlaut ist, dann einfach copy&paste, wird schon jemand übersetzen können. > ORG $B600 ; Start of EEPROM > > ldx $B7f0 Könnte mir gut vorstellen, daß der EEPROM nur für Daten ist, d.h. da darf kein Code stehen. Selbst modifizierender Code ist ja auch etwas strange. Peter
Hallo, der HC11 kann da alles speichern, weil er eine von Nemann Architektur hat. Wie allerdings generell läßt sich EEPROM nicht so einfach mittels STA beschreiben. Im Datenblatt steht der EEPROM Schreibzyklus wie folgt beschrieben : PROG LDAB #$02 EELAT = 1 STAB $103B Set EELAT bit STAA $XXXX Store data to EEPROM address ( for valid EEPROM address see memory map for each device) LDAB #$03 EELAT = 1, EPGM = 1 STAB $103B Turn on programming voltage JSR DLY10 Delay 10 ms CLR $103B Turn off high voltage and set to READ mode Was der Assembler da für eine Fehler rauswirft weiß aber immer noch niemand. Eckhard
Sorry, habs überlesen, dachte es ist ein AVR. Nun dein Code ist trotzdem falsch. Wenn du ein .org $B600 benutzt, bedeutet dies, dass folgende Assemblerbefehle an die Adresse $B600 geschrieben werden. Dein Programmcode muss aber immer im Programmspeicher stehen. Von dort kannst an einen Wert an eine Adresse speichern. Also meinetwegen: .org $100 (Programmspeicher) load Adresswert nach Adressregister A0 schreibe Wert an Adresse die in A0 steht (Kenn jetzt nicht die Befehle beim HC11) Willst du feste Werte wie Konstanten beim Programmieren an einer bestimmten Stelle ablegen (meinetwegen die Zahlen 5,4,13 sollen an Adresse $B600 stehen, dann muss es wie folgt heißen: .org $xxxx "Hauptprogramm im Programmspeicher" .org $B600 (EEPROM) .db 5,4,13 So ist das nun bei ASM üblich.
Hallo, nochmal ein HC11 unterscheidet nicht zwischen Daten und Programmspeicher. Der hat nur RAM und EEPROM. Das Programm kann natürlich auch im RAM laufen aber ist dann nach dem Einschalten weg. Deshalb legt man das Programm halt in den EEPROM Bereich. Eckhard
Hi Alex Ich weisst jetzt was du meinst. ORG $B600 Data1 RMB 1 Daten FDB 5,4,13 ; DB.W oder DB.B würde auch gehen LDX #Daten LDAA 0,X ; ACCA wird mit 5 initialisiert STAA <Data1 ich glaube so ist das Programm richtig
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.