-
-
Kommunikationsproblem
Hallo zusammen,
ich habe ein kleines Problem. Ich bin noch blutiger Anfänger in Assembler und habe vor eine Kommunikation zwischen Contollern auf zu bauen, und zwar in etwa so.
PC beginnt dem Controller das erste Byte zusenden, dort ist enthalten was er machen soll, und ob evtl noch weitere Bytes kommen, auf die gewartet werden muss. Also schickt der PC dem Contoller einen Befehl.
Da ich mit einem Byte 255 verschiedene Befehle erstellen könnte habe ich mir nun gedacht im Programm die verschiedenen Befehle zuprogrammieren, und die Sprungadressen im EEPROM oder besser im SRAM abzulegen, so das ich wenn ich den Befehl bekomme zu der Adresse im SRAM springe mit die beiden Bytes auslese welche die Adresse im Flash darstellen und diese dann ins X Register laden und dann mit
zum entsprechenden Programmablauf zu gelangen.
Jetzt meine Fragen:
1. Würde das so funktionieren, oder gibt es eine bessere Lösung?
2. Wie komme ich nach meinem Sprung wieder zurück?
Danke für eure Mühe
Nemesis
-
Erfahrener Benutzer
Robotik Einstein
Mit CALL und RET wird der Stack verwendet, um wieder zurückspringen zu können.
-
Hey, es funktioniert.
=D>
Gibt es eine möglichkeit dem Assembler zu sagen er soll die Sprungadresse automatisch anzuzeigen? Mit dem Präprozessor oder so? Ich habe nähmlich jetzt beim Debuggen die Sprungadresse in den SRAM gelegt, welche ich aus dem Dissassembler abgelesen habe. Wenn ich das nach fertigstellung des Programms für viele Befehle machen müsste würde ich verrückt werden.
Danke schon mal
-
Erfahrener Benutzer
Robotik Einstein
Du setzt dir ne Sprungmarken am Ziel, und sagst dann CALL sprungmarke
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen