LCD vertauscht Zeichen

Gast #2289549
Lesenswert?

Grüß euch!

Ich habe ein Problem,wo ich einfach nicht mehr weiter weiß!

Ich versuche die ganze Zeit mit meinem Atmega32 einen LCD 
Display(4Zeilig 16*40 anzusteuern)

Initialisieren lässt er sich, nur wenn ich dann Zeichen (Buchstaben oder 
Zahlen) an das LCD senden möchte, zeigt dieser statt z.B. 123456789 - 
#CScs an!

Vorgegangen bin ich laut dem LCD-Ansteuerung Tutorial welches hier auf 
dieser Seite angeboten wird!

Das einzige was ich verändert habe ist die Taktfrequenz bzw. habe ich 
die Datenpins von PDx auf PA0-PA3 verlegt.

Achja und nachlöten hilft leider auch nichts!

Bitte um eure Hilfe!

Dankeschön!

Mit freundlichen Grüßen,

Christian


Daten:

Atmega32 (Taktung 16MHz)
Display Optex 16433 mit HD44780A Controller
4 Bit Ansteuerung
Gast #2289613
Lesenswert?

Hier die Infos:

 Programm:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

zum Schluss habe ich die Pins wieder umgeändert von PA0-PA3 auf PD0-PD3

->Egal ob ich das Programm 1-1 übernehme,der LCD zeigt immer etwas 
anderes an!

Das Ergebnis #3CScs habe ich durch diesen c.Quelltext erhalten:
1
#include <avr/io.h>
2
#include "lcd-routines.h"
3
 
4
int main(void)
5
{
6
  
7
  // Initialisierung des LCD
8
  // Nach der Initialisierung müssen auf dem LCD vorhandene schwarze Balken
9
  // verschwunden sein
10
  lcd_init();
11
 
12

13
 
14
  lcd_home();
15
 
16
  // erneut Text ausgeben, aber diesmal komfortabler als String
17
  lcd_string("123456789");
18
 
19
  while(1)
20
  {
21
  }
22
 
23
  return 0;
24
}

 Fuses hab ich nur die gesetzt,welche man braucht um mit 16MHz arbeiten 
zu können

Anschluß komplett:

 Also DB7-DB4 war zuerst auf PA3-PA0 nun wieder auf PD3-PD0

Vee auf GND,E auf PD5,RS auf PD4,RW auf Ground!


Kann es sein,dass es mit dem Pullup Widerstand am Pin E etwas damit zu 
tun hat?

Weil laut Datenblatt heißt es:

E = Enable Signal (No pull-up Resister) ??


(Datenblatt:
http://datasheet.octopart.com/DMC-16433-Optrex-datasheet-56902.pdf)

Danke für die schnelle Antwort!
Gast #2289642
Lesenswert?

jap hängt richtig dran,ich bekomm ja die schwarzen Balken zu beginn , 
welche auch dann wieder sofort verschwinden!(also der Ablauf ist bis 
dahin richtig)

@spess53

Ich glaube das du Recht hast,weil egal was ich schreibe er vertauscht 
mir alle Zeichen,nur wie kann ich die Nibbels zurücktauschen,sodass ich 
die richtigen Zeichen bekomme?

@charly

Müsste das nicht hier egal sein mit welcher Taktfrequenz ich arbeite?

Nochmal danke für die schnellen Antworten
Gast #2289648
Lesenswert?

Hi

>Ich glaube das du Recht hast,weil egal was ich schreibe er vertauscht
>mir alle Zeichen,nur wie kann ich die Nibbels zurücktauschen,sodass ich
>die richtigen Zeichen bekomme?

Ich würde auf deine Zeichenausgabe-Routine tippen. Dort werden die 
Nibbles in der falschen Reihenfolge ausgegeben.

MfG Spess
Persönliche Seite #2289649
Lesenswert?

> mir alle Zeichen,nur wie kann ich die Nibbels zurücktauschen,sodass ich
> die richtigen Zeichen bekomme?

Na, das Programm richtig schreiben!


Gruss

Michael


Das richtige Vorgehen hier ist - wie immer - den uC im Debugger im 
Single Step Betrieb laufen zu lassen und bei jedem Schritt mit einem 
einfachen Multimeter die Spannungen an den Pins zu messen!
Gast #2289741
Lesenswert?

Danke dir spess53,diesen Trick werde ich morgen gleich ausprobieren!

@Klaus2m5

jap ich habe die 16MHz definiert!

Danke nochmal für die zahlreichen Antworten!

Mit freundlichen Grüßen,

Christian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren