Hi,
nach dem ich das Pollin-Board bestellt, gelötet und bereits einige Tests
damit gemacht habe, ist meine jetztige Spielerei die folgende: ich habe
mir eine 3x3-LED-Matrix gelötet. Mein Ziel ist es, dass ich mit einer
Frequenz von 1Hz der Rand und dann die LED2,2 blinkt.
Nunja, dafür habe ich mir ein Assembler-Programm geschrieben, welches
bedingt durch meine sicherlich nicht sehr effiziente Programmierung ca.
200 Zeilen hat.
Will ich es nun mit "avra" übersetzen lassen, so wird mir folgender
Fehler ausgegeben: "3x3.asm(164) : Error : Branch out of range (-64 <=
k <= 63)". Der Befehl in Reihe 166 ist "brne".
Ich habe mich bereits ein wenig eingelesen und da sind mir "jmp" und
"rjmp" begegnet: der Unterschied ist bekanntlich, dass der erste Befehl
absolut springen kann und der zweite relativ (wahrscheinlich relativ von
der Position an der dieser sich befindet) springen kann. Es geht also
sozusagen um Reichweiten, so wie ich das verstanden habe. Und genau das
ist wohl auch das Problem an brne.
Meine Frage: gibt es eine Art absolutes brne, womit ich von Zeile 166 zu
Zeile 24 (dort ist das Label "main" - die Sprungadresse) springen kann?
Ich habe einfach mal die Programmdatei mit drangehängt. Vielleicht kann
man das Problem durch intelligentere Programmierung lösen?
LG und ich hoffe ihr könnt mir mit der sicherlich relativ einfachen
Frage helfen :)