mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lcd-Ansteuerung aus Tutorial funktioniert nicht!


Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

habe endlichmal angefangen mich in die Welt der Mikros hervor zu wagen.
Nun hänge ich an der Stelle des Tutorials fest wo ein Text auf dem 
Display ausgegeben werden soll.

Bei mir kommen immer wieder die errors call k: Unsupported instruction 
on ATmega8 bei laden der lcd routines.

Bin sehr dankbar über jede Hilfe !!!

Gruß

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Befehl call gibt es auf dem ATMega nicht. Nimm rcall. Das selbe gilt 
übrigens, falls irgendwo ein jmp steht, das muss entsprechend durch rjmp 
ersetzt werden.

Im Datenblatt steht übrigens ein Instruction Set Summary. Da steht drin, 
welche Befehle es für den jeweiligen AVR überhaupt gibt.

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.
Da ich aber die codes aus dem tutorial 1:1 übernommen und auch noch mal 
nachgeprüft habe kann ich das ausschliessen.

Hier nochmal der ganze error beim Build:

....\lcd-routines.asm(163)bzw.(243): error: call k: Unsupported 
instruction set on ATmega8

Autor: Willi Wacker (williwacker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt Dein Compiler mit dem des Tuts überein? Welchen Compiler setzt Du 
ein?

Sicher, dass Du den gleichen Controller nimmst?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, da ist anscheinend tatsächlich ein Fehler im Code zum Tutorial! An 
einer Stelle steht "call lcd_data". Also wie oben schon gesagt: ersetze 
call durch rcall und es sollte laufen, falls nicht noch mehr Fehler drin 
sind.

EDIT:
Korrigiere: Es steht an ZWEI Stellen call statt rcall.

Übrigens: Es macht i.d.R. kaum Sinn, eine Fehlermeldung ohne den 
dazugehörigen Code zu posten...

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry das mir jetzt peinlich,habe den Atmega8 16PU drin. Habe oben in 
der include aus 8 ne 16 gemacht und nun funktioniert es.

Trotzdem danke für die Hilfe.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, wenn Du das Ding für einen ATMega16 assemblierst, dann geht das 
Assemblieren, weil der Mega16 den call-Befehl hat. Aber der Code läuft 
nicht auf dem Mega8!!!

Der Mega8-16PU ist ein Mega8 und der Mega8 hat (wie oben erwähnt) keinen 
call-Befehl! Code, der für einen Mega16 assembliert wurde, läuft unter 
Garantie nicht auf dem Mega8!

Du musst die calls ersetzen, sonst gar nichts. Ich hoffe, das ist jetzt 
klar...

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Trotzdem versteh ich es nicht da es sich ja um einen ATmega8 handelt.

Autor: B.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo vielen dank!!!!!

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
B.K. wrote:
> Trotzdem versteh ich es nicht da es sich ja um einen ATmega8 handelt.
EBEN! Der Mega8 hat keinen call-Befehl, sondern nur einen rcall. Deshalb 
musst Du, um den Code auf einem Mega8 zum laufen zu bringen, die beiden 
vergessenen "r"s im Code hinzufügen! Ein Mega16 ist was völlig anderes!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.