Hallo, Es gibt mal wieder etwas dass mir nicht in den Kopf gehen will... Im Anhang ist eine Datei, die sich einfach nicht assenblieren lässt. Der Code ist nicht fehlerhaft, jedoch im Abschnitt: JA1: und JA2: ist ein sprungbefehl: "rcall zeit2". Beim Label JA1 funktioniert es noch, wenn ich das selbe bei JA2 und oder den anderen einsetze bringt mir das AVR Studio einen Assemblierungsfehler... Kann mir bitte einer sagen warum ? Ich verstehs nicht, denn es ist doch ganz normaler Programmcode. Hatte das schon öfter, vor allem wenn ich display texte in Tabellen fasse, oder viele SBI befehle habe.. irgendwann streikt der Assembler und meldet einen Fehler, warum auch immer. Was mache ich falsch ? Wäre für eine Erklärung echt dankbar. Gruß, Andy
Sorry: Error: Relative Branch out of reach was soviel heisst dass das sprungziel ausser reichweite liegt, was ich mir aber nicht vorstellen kann wenn ich mir das programm so ansehe... ??? :( ?
der Assembler gibt dir bestimmt noch weitere Hinweise, welcher Sprungbefehl das Problem verursacht... In Frage kommen die bedingten Sprünge (breq, brne u.ä), die nur eine Sprungweite von +127/-128 haben. Rcall und rjmp stehen ausser Frage, da diese den gesamten Programmspeicher erreichen.
Kopiert doch die quelldatei mal selbst in euer avr Studio, dafür habe ich sie angehängt. Dann seht ihr den Fehler. Bei mir steht nur: "Error: Relative Branch out of reach" Assembly complete with 1 error Im Label JA1: steht der befehl " rcall zeit2" im Label JA2: ist er momentan ausgeklammert ( Semikolon ) wenn ihr das weg macht, kommt der assembly error, obwohl die sprungmarke ein paar zeilen oben drüber steht. Sprungadressen zur lcd routine sind wesentlich weiter entfernt, genau wie die Tabellen, die kommen nach der ganzen lcd routinen und das geht ja auch, und bei einem sprungbefehl ein paar zeilen oben beschwert er sich, das ist das was ich nicht verstehen kann.
Die gibts hier im tutorial zum herunter laden, das ist diese routine. Gruß, Andy
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.