mikrocontroller.net

Forum: Compiler & IDEs Mal wider LCD über AVR ansteuern


Autor: Zoomie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi !

Ich verzweifle langsam an der ansteuerung eines hd44780 kompatiblen
displays in c.
In ASM war das alles kein problem aber jetzt in c bekomm ichs nicht hin
!
hab auch schon gesucht aber leider nichts gefunden.

das einzige was der code macht ist, dass auf dem display ein p
angezeigt wird (auch wenn lcd_text auskommentiert wird).

das p kommt glaub ich aus der zeile:

init = 0b00001110;
LCD_command();

kann jamand sich vielleicht mal den code anschauen und sagen was ich
falsch mache? wär wirklich super nett ! und der code is ja nicht so
lang.

Vielen Dank !

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einer fertigen Routine.
Suche in diesem Forum nach "Fleury"
Hubert

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie lautet deine Pinbelegung?
Wo befindet sich die Funtkion *lcd_renew()* ?
Was bringt es dir in *LCD_init()* später ständig die Variable init zu
setzten, obwohl du danach nur die Funktion *LCD_command()* aufrufst, die
unabhängig von init ist ?

Autor: Zoomie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
normal müsst des so aussehen:

init = 0b00001110;
LCD_command(init);

lcd_renew() ist lcd_enable(). (wurde nur zu debug zwecken verwendet.)

ich versteh langsam nix mehr! es wird immer nur son p angezeigt egal
was ich mach !
ich saß an dem code jetzt sicher schon 20 std und bekomms net hin !
die fertige routine will ich nicht verwenden, weil die zu kompliziert
für mich ist und ich wills schliesslich lernen !

MFG Zoomie

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verwende eine etwas abgewandelte Routine ohne R/W. LCD_init wird nur
einmal aufgerufen um z.b.den 4-Bit Modus zu aktivieren.
lcd_renew kenne ich nicht.
In der zugehörigen Lib sind alle Funktionen beschrieben.

Hubert

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hauptschleife vergessen !!!

main() darf niemals beendet werden !!!

Du hast ja kein OS wohin Du zurückkehren kannst.


Peter

Autor: Zoomie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab jetzt for(;;); eingefügt hat nix verändert....warum denn auch des
display behält des ja eh im speicher und dann isses doch egal wenn der
mc "abstürtzt". Und interrupts hab ich eh keine drinne.
Ich bin voll am verzweifeln....
MfG

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Füg mal noch die komplette Anschlußbelegung zu und ersetze die Zahlen
durch Pin Namen (z.B. LCD_E usw.).

Peter

Autor: Zoomie (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo! ich hab mal ein schaltplan in zu meinen aufbau gemacht.
mich wundert es, dasses mit asm auf anhieb funktioniert hat.
In prinzip funktioniert ja die initialisierung, weil das display ca. 1
sec nach dem start ein "p" anzeigt und das zeigt es auch an wenn ich
die  funktion LCD_Text() nicht aufrufe. das p wird nach dem

  init = 0b00001110;
  LCD_command(init);

angezeigt.
kann es sein, dass mit dem timeing was nicht stimmt ?

MfG simon

Autor: OldBug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int init = 0b00000111;

Das geht doch mit der aktuellen Version des avr-gcc bzw. WinAVR noch
gar nicht!?

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, Eric hat meinen Patch stillschweigend ins WinAVR aufgenommen, da
es ein frequently requested item ist.

Autor: Zoomie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habs hinbekommen ! Danke nochmal an alle

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woran lag es denn jetzt? Nur für den Fall das irgendwann jemand mit
einem ähnlichem Problem diesen Thread liest. :-)

Autor: Zoomie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine ahnung ! hab die komplette routine selber geschriben (mit hilfe
von der asm datei), und dann gings (und das sogar auf anhieb) ! Und das
ohne probleme !

MfG Zoomie

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.