Atmega32 mit extern Quarz und LCD

Gast #4283624
Hallo,
habe versucht einen LCD-Display an einen Atmega32 anzubinden. Habe 
leider das Problem das der LCD nicht mehr funktioniert wenn ich den 
Atmega auf dem externen Quarz laufen lasse. Bin vorgegangen wie im 
AVR-GCC-Tutorial/LCD-Ansteuerung beschrieben. Beispiel Programme laufen 
-- > Fuse bits setzen
-- > Programme laufen nicht mehr bzw. LCD zeigt nichts mehr an.

Ich habe im AVR-Studio das "Fuse-Bit-Fenster" geöffnet und habe folgende 
Einstellungen für einen 16MHz externen Quarz vornehmen:

SUT_CKSEL auf "Ext. Cristal/Resonator High Freq. Startuptime 16K CK + 
64ms"
und an CKOPT ein Häkchen.
Weis da jemand was?
Gast #4284252
Peter,

ich frage mich immer warum man nicht auch die zugehörigen Datenblätter 
und Application Notes von Atmel liest.

Ich hatte noch nie Problem mit den Atmel AVR.
Gast #4284297
Ein Atmega32 hat soweit ich weiß keinen Clockteiler. Ich benutze das 
erste Mal einen LCD. Begreife aber nicht warum er nicht läuft wenn ich 
einen externen Quarz benutze.
Gast #4284343
Mitlesa schrieb:
> - Sourcen neu compiliert mit F_CPU=<Quarzfrequenz> ?

Man muss womöglich - um ganz sicher zu gehen - die *.o
Dateien löschen (am besten alles im default Verzeichnis)
damit auch sichergestellt ist dass der veränderte F_CPU
Wert in allen Sourcen (-->delay) korrekt berücksichtig wird.
Gast #4284494
Michael K. schrieb:
> Natürlich hat der einen Clockteiler. Er hat vielleicht kein Fusebit
> sodass er auf 8 voreinstellbar ist aber einen Clockteiler hat auch ein
> Atmega32.

Nennt sich DIVCLK8 oder so ähnlich und steht bei den Fuse Bits. Einfach 
das Häkchen dahinter entfernen und Fusebits auf den Controller 
schreiben.

War mir als Anfänger auch mal passiert und hatte ein Weilchen gedauert, 
bis der Groschen gefallen war.
Gast #4284499
Ich selber habe noch kein LCD-Display programmiert, aber soweit mir 
bekannt, ist das Timing, mit delay, nicht ganz ohne.
Also würde ich mal eine 08/15-Schleife (mit Port:an delay; Port:aus; 
delay) programmieren und laden. Dann schauen, ob (vielleicht ist ja eine 
LED in der Nähe) die Zeiten stimmen.
Das würde auch die Kontrolle des Quarzes erschlagen.
#4285206
Elcid schrieb:
> Nennt sich DIVCLK8 oder so ähnlich und steht bei den Fuse Bits. Einfach
> das Häkchen dahinter entfernen und Fusebits auf den Controller
> schreiben.

Es heißt CKDIV8 und der Atmega32, der hier zum Einsatz kommt, hat dieses 
Fusebit gar nicht. Blick ins Datenblatt hilft. ;)
#4285249
Michael K. schrieb:
> Elcid schrieb:
>> Nennt sich DIVCLK8 oder so ähnlich und steht bei den Fuse Bits. Einfach
>> das Häkchen dahinter entfernen und Fusebits auf den Controller
>> schreiben.
>
> Es heißt CKDIV8 und der Atmega32, der hier zum Einsatz kommt, hat dieses
> Fusebit gar nicht. Blick ins Datenblatt hilft. ;)

Ausserdem wäre es egal.
Wenn der µC tatsächlich langsamer taktet als der Wert angibt, mit dem 
die Wartezeiten berechnet wurden, dann sind alle Verzögerungen zu lang. 
Was bei einem LCD unkritisch ist.
Der umgekehrte Fall ist da bei weitem tragischer.

Erst mal nachsehen, ob er sich nicht verfused hat und der µC überhaupt 
noch läuft. Wie vorgeschlagen eine LED mittels _delay_ms blinken lassen, 
dann weiss man mehr.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.