Hallo, ich habe wie viele andere auch folgende Schleife programmiert. Beim Assemblieren meldet er aber den Fehler (AVR-Studio) "Relativa Branch out of Reach". Die dt. Uebersetzung ist kein Problem, aber welches Problem besteht. Die Schleife muesste doch einwandfrei sein - oder? ldi cou0, 0x06 loop_data_out: rcall out_ready ld all0, X+ ..... etc..... dec cou0 brne loop_data_out Tschues, Thomas H.
Hallo Thomas, Die ganzen Branch-Befehle können nur max. -64/+63 Byte im Programmcode springen. (Der Opcode ist für größere Sprünge zu klein/kurz und nicht dafür gemacht). "Workaround": Springe zunächst mit brne eine nähere Speicherstelle an und von dort aus per rjmp (das kann bis zu +-2k springen) ans eigentliche Ziel. Tschüß, André. -- http://www.canathome.de - Hausautomation mit AVR + CAN
Hallo André, danke, ich werde es einmal anders versuchen. Ade, Thomas H.
hi, hatte das problem auch und hab es damit sofort gelöst. echt super. danke mfg
Hallo, A. Füßer schrieb: > "Workaround": Springe zunächst mit brne eine nähere Speicherstelle an > und von dort aus per rjmp (das kann bis zu +-2k springen) ans > eigentliche Ziel. oft hilft auch ein Umdrehen der Bedingung: dec cou0 breq bin_fertig rjmp loop_data_out bin_fertig: Gruß aus Berlin Michael
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.