-         

Ergebnis 1 bis 7 von 7

Thema: LCD Display spinnt!? (Gelöst -->Atmega644 zu langsam!)

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647

    LCD Display spinnt!? (Gelöst -->Atmega644 zu langsam!)

    Anzeige

    Hi,

    könnt ihr mir mal helfen bitte. Mein Atmega644 ist irgendwie zu langsam für "waitms 500" benötigt er ca. 6sekunden.

    Ich vermute, das die Fusebits nicht stimmen. Aber bevor ich da was kaputt mache frage ich lieber hier nochmal nach.
    Achja auf dem LCD wird nichts ausgegeben. Kann das am timing liegen welches ja vermutlich dann auch nicht passt oder?

    Mein Programm sieht so aus:
    Code:
       $regfile = "m644def.dat"
    $baud = 19200
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000
    
    Config Pind.7 = Output
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Porta.6 , Rs = Porta.7
    
    Do
    Waitms 500
    Pind.7 = 1
    Cls
    Lcd "pind.7 = 1"
    Waitms 500
    Pind.7 = 0
    Cls
    Lcd "pind.7 = 0"
    
    Loop
    
    End
    EDIT:
    Wenn ich "$crystal = 1000000" einsetze, läuft er schon schneller aber ich habe den eindruck das es relativ unregelmäßig ist.
    Ich habe mal am Kontrast gedreht es scheint als würde nur eine Zeile was anzeigen. Es handelt sich um ein TC1602A-09T(R).

    Danke
    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Aja,
    wenn der 644er (und andere AVRs) nur 1/8 des angegebenen/gewollten Taktes läuft, ist noch ein Fusebit falsch eingestellt.
    Nennt sich CKDIV8, im orig. Zustand wird der Takt nochmal durch 8 geteilt.

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Danke Linux_80
    Das hat mein Geschwindigkeitsproblem gelöst!

    Allerdings habe ich noch Probleme mit meinem LCD. Hat da noch jemand ne Idee?

    Danke
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ich vermute, das die Fusebits nicht stimmen. Aber bevor ich da was kaputt mache frage ich lieber hier nochmal nach.
    Beides ist ein guter Ansatz
    Einen extrem hifreichen Fusebit-Kalkulator findest du hier:

    http://www.engbedded.com/fusecalc/

    Dort kannst du feststellen, dass beim Mega664 im Auslieferungszustand das CKDIV8-fusebit gesetzt ist, d.h. der Takt intern durch 8 geteilt wird. Wenn du es löschst, läuft der Controller auch mit den gewünschten 8MHz.

    So ein richtiges Eigentor kann man sich eigentlich nur mit dem SPIEN-fusebit schießen. Wenn das gelöscht ist, klappt die serielle Programmierung nicht mehr, der Chip ist dann nur noch mit ´nem "High-Voltage"-Programmer zu retten.

    Also - experimentier´ mal damit rum, ist alles halb so wild!!

    Edit: Schon wieder 4 Minuten zu spät

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Zum LCD,
    das ist an PortC wie's aussieht, deshalb nochmal zu den Fusebits, hier wird JTAG noch aktiviert sein.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    Ok das habe ich geändert es war wirklich noch auf Jtag. Danke

    Allerdings liegt das Problem weiterhin vor.

    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.09.2004
    Alter
    32
    Beiträge
    647
    So jetzt hab ich einiges im Inet gelesen.

    Ich habe nun den RW Pin auf gnd gelegt (software technisch) weil ich das auf der Bascom Seite zufällig entdeckt habe.

    Jetzt wird schonmal was angezeigt auch wenns nur schwachsinn ist. Allerdings ist trotzdem nur eine Zeile sichtbar.

    EDIT:

    So nächstes Update:

    Ich habe die Datenleitungen DB0 - DB3 abgekniffen und RW per software auf gnd gelegt. Jetzt Funktioniert das Display. Ist zwar ein bisschen schade, weil ichs im 8bit modus betreiben wollte aber ich denke so gehts auch.

    MFG Daniel
    Unser Sommer ist ein grün angestrichener Winter. Das einzige reife Obst, das wir haben, sind gebratene Äpfel. [Heinrich Heine]

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •