Forum: Mikrocontroller und Digitale Elektronik Probleme bei Anpassung von ATmega8 nach ATmege16


von BerndB (Gast)


Lesenswert?

Hallo,

ich versuche vergeblich ein Assemblerprogramm, welches problemlos auf 
ein ATmega8 läuft, auf einen ATmega16 umzuschreiben. Hierbei gibt es die 
Fehlermeldung "Relative branch out of reach" und meckert damit eine 
RCALL-Funktion an. Gelernt habe ich in diesem Forum das der RCALL-Befehl 
im gesamten Programmbereich Gültigkeit hat.
Was kann der ATmega8 besser und was kann mir jetzt helfen den Fehler zu 
beseitigen?
Gruß
Bernd

von avr (Gast)


Lesenswert?

Zeile 42...

RCALL hat nur eine bestimmte "Reichweite", kann also für einen 
"Funktionsaufruf" nur eine bestimmte Anzahl Anweisungen vor- oder 
zurückspringen.

Wenn unterstützt stattdessen CALL verwenden.

von spess53 (Gast)


Lesenswert?

Hi

>Gelernt habe ich in diesem Forum das der RCALL-Befehl
>im gesamten Programmbereich Gültigkeit hat.

Im Programmbereich eines ATMega8, ja. Nicht eines ATMega16.

Ersetze es einfach durch 'call'.

MfG Spess

von BerndB (Gast)


Lesenswert?

Es funktioniert!!!

Vielen Dank!!!

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
Noch kein Account? Hier anmelden.