LCD seriell nach Ulrich Radig

OP #1672636
Lesenswert?

Hallo,

habe mir das serielle LCD von Ulrich Radig nachgebaut.
Außer der Zeile eins mit fast allen Dots wird nichts angezeigt.

Als µC verwende ich eine Atmega32 ohne Quartz, habe deshalb nach 
verschiedenen Versuch in der USART.h bei ifndef ... die 16 MHz auf 1 MHz 
gesetzt.
Ist das ein Problem?
Ferner habe ich versuchsweise in der main.c nocht eine interne Funktion 
init() eingefügt und dort den PORT C auf DDRC = 0xff als Ausgang gestzt.
Keine Veränderung.

Das Backlight geht mal an, oder bleibt aus, wenn ich die 
Versorgungsspannung wegnehme bzw. dranhänge.

Beim Compilieren, Linken und Flashen bekome ich keine Warnung, keinen 
Fehler.

Habe schone alle Leiterbahnen x-mal geprüft, kein Fehler.

Einziger Unterschied zum Original ist der Verwendung des 
Schieberegisters 74HC164N anstatt 74AC164N. Soll aber angeblich keine 
Problem sein.

Kann mir jemand helfen?
#1672658
Lesenswert?

Dietmar P. schrieb:

> Als µC verwende ich eine Atmega32 ohne Quartz, habe deshalb nach
> verschiedenen Versuch in der USART.h bei ifndef ... die 16 MHz auf 1 MHz
> gesetzt.
> Ist das ein Problem?

Du solltest aber auch dem Rest des Codes deine 1Mhz zugänglich machen.
Dazu in den Projekteinstellungen die 1Mhz eintragen. Dann wird auch 
F_CPU automatisch mit dem richtigen Wert besetzt und dann ist der 
#ifndef nur noch reine Formsache.
OP #1672660
Lesenswert?

Das mit der Logik stimmt zwar, aber ich meinte das könnte irgendwie 
zusammen hängen.
Die Dots sind in normaler Helligkeit dargestellt, aber wie gesagt nur in 
der Zeile eins und auch nicht vollständig, z.B. fehlt die Dot-Zeile 5. 
Wenn ich am Kontrast rumschraube wird die gesamte Darstellung flauer 
oder dunkler.
#1672698
Lesenswert?

Dietmar P. schrieb:
> Ok., habe oben in der main.c eingetragen:
>
> #ifndef F_CPU
> #define F_CPU 1000000UL     // Takt CPU wird auf 1Mhz gesetzt
> #endif
>
> Leider auch kein Erfolg.

und wer sagt dir, dass das alles ist?
Da gibt es sicherlich noch ein eigenes File mit den LCD Routinen, oder 
etwa nicht? Die sollten auch wissen, dass alles mit 1Mhz läuft, denn 
insbesondere das Initialisierungstiming ist kritisch.

Was ist so schwer daran, die 1Mhz in den Projekteinstellungen 
einzutragen. Hast du Angst davor, dass dann plötzlich alle am Projekt 
beteiligten C-Files automatisch mit der richtigen Taktfrequenz versorgt 
werden würden und Änderungen nur an einer Stelle notwendig wären? So 
nach dem Muster: Warum einfach, wenns auch umständlich geht.

Vielleicht löst es dein Problem nicht, mag sein. Aber es ist zumindest 
ein Schritt in die richtige Richtung.
OP #1672718
Lesenswert?

Danke für die weitere Antwort.

Dann muss ich nochmal nachfragen, ich stehe mit den 
"Projekteinstellungen"
auf dem Schlauch. Wo finde ich denn etwas?

Habe bis nur kleine C-Prgrämmchen für den Atmega geschrieben, da hatte 
ich keine Projekteinstellungen separat, eben nur das ifndef im main.c.

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