LCD Tutorial + Problem

Gast #136194
Lesenswert?
• ▲
▼
Hallo,
habe laut dem Tutorial auf dieser Page mal alles aufgebaut.

Scheint schon zu funktionieren, aber mit fehler

Wenn ich das Programm rauf schicke mit dem Text "Test" zeigt es
"Ts" an, mit anderen Wörter das selbe problem, es werden einfach
sachen ausgelassen oder falsche zeichen angezeigt.

danke
Gast #136201
Lesenswert?
• ▲
▼
er läuft mit 8MHz, im tutorial steht das man die zeit anpassen muss...
hab dann mal testweiße die nop's verdoppelt... weil das tut ist ja für
4MHz geschrieben... keine veränderung

achja, meist werden die ersten 3 stellen antezeigt, es kommt dann sowas
wie "Tes" oder "Tet" die ersten beiden ziffern sind aber meist
richtig.. manchmal kommen noch ein paar komplett schwarz ausgefüllte
felder....

MfG
Stefan

PS: bin kein assambler genie.. ich kenn mich eigentlich fast garnicht
damit aus.. hatte bisher nur ein 6kanal lauflicht an meinem Mega8 ;)
Gast #136205
Lesenswert?
• ▲
▼
ich nutze yaap und habe die bits so gesetzt wie in dem tutorial.. also
ich denke er läuft jetzt mit 8MHz.. hatte blos den schaltplan von einer
anderen homepage... deswegen habe ich ein 8MHz quarz und kein 4MHz...

MfG
Stefan
Gast #136207
Lesenswert?
• ▲
▼
ok, also prinzipiell scheint es zu funktionieren... wenn ich z.B.
"Hallo Welt" ausgeben lassen will bekomme ich "HaloWet" auf meinem
Display angezeigt ;)

ich werd mal google bemühn vielleicht find ich ja was, danke für die
hilfe

MfG
Stefan
Gast #136208
Lesenswert?
• ▲
▼
Ich vermute, das der Controller einfach zu schnell ist... Normalerweise
fragt man im Programm die Enableleitung des LCD Displays ab, damit man
weiß, ob man schon wieder was senden darf oder noch warten muß. In
diesem Beispiel wurde die Enableleitung einfach auf Masse gelegt und
die Pausen so eingefügt.---> Wenn das LCD zu langsam oder der µC zu
schnell ist, dann kommt Halo Wet heraus, verstehst du mich?

Darum wäre es gut, den µC langsamer zu machen.

Gruß Avus
Gast #136209
Lesenswert?
• ▲
▼
hi,
also jetz klappt es, ich hab die fusebits so eingestellt wie sie im
auslierferungszustand waren.. allerdings nutze ich ja jetzt wieder den
internen tackt von 1MHz :( naja wenigstens es funktioniert..

danke für die hilfe

MfG
Stefan
Gast #136211
Lesenswert?
• ▲
▼
@Stefan:
Probier mal das hier:

.equ AVRTakt=4

delay5mS:
  ldi  r24, low(5000*AVRTakt/4)
  ldi  r25, high(5000*AVRTakt/4)
  rjmp  delayuS

delay50uS:
  ldi  r24, low(50*AVRTakt/4)
  ldi  r25, high(50*AVRTakt/4)
delayuS:
  sbiw  r24,1
  brne  delayuS
  ret

Ersetze die alten delay-Routinen durch diese hier und trage in der
Konstante AVRTakt die MHz ein (4MHz = 4, 8MHz = 8 etc.).
Ist einfach und schnell auf die AVR-Frequenz abstimmbar.
Die ganzen NOP´s zwischen SBI und CBI für den Enable-Puls kannst Du
eigentlich alle weglassen da nicht mal bei 16MHz ein NOP für Enable
nötig ist.
Wenn Du willst, kannst Du in der Routine bis auf 1500/1600µS
runtergehen (1,5/1,6mS).

Gruß
Andi

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.