NemesisoD
01.06.2007, 18:37
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
jmp X 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
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
jmp X 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