- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 43

Thema: Problem mit LCD-Display

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.01.2007
    Ort
    Bonn
    Alter
    33
    Beiträge
    48
    Hallo Michael,

    auch ich finde sehr schlecht das ich es nach einer Woche & Hilfe immernoch nicht schaffe ein einfaches Display zum Laufen zu bringen. Ich springe zwischen den Ports hin und her damit ich einen Funktionierenden finde! Ich kann mich später darum kümmern warum ein bestimmter Port nicht Funktioniert. Am Anfang habe ich alles Systematisch durchprobiert bis ich zu dem Punkt kam hier zu schreiben. Seitdem ändere ich meinen Aufbau immer so wie Vorschläge kommen. Wie könnte ich es denn besser machen?

    JTAG war nie ein Problem dar ich noch nicht am Port C dran war. Es ist nur nebenbei aufgefallen und ich habe JTAG inzwischen auch Deaktiviert.

    Am Anfang hatte ich einige Programme gepostet und mir wurde noch nicht gesagt das ich irgendwo einen Fehler habe. Nur Ratschläge wie man es mal anders Probieren kann und für mich geschriebene Programme wurden gepostet. Diese habe ich dann einfach kopiert und übertragen. Ich wüsste nicht wo man da was falsch machen kann?

    Aber da du drum gebeten hast findet du hier jetzt die aktuellen Programme.
    RnMega 2560:

    Code:
    $regfile = "m2560def.dat"
     $hwstack = 82                                               '80
     $framesize = 68                                             ' 64
     $swstack = 8
     
                                                     '44
     
     $crystal = 16000000
     
     Config Pinf.1 = Input                                       'Quarzfrequenz
     
     Config Pind.5 = Output
     Led Alias Portd.5
     Led = 0
     
     Config Lcdpin = Pin , Rs = Portb.7 , E = Portb.5 , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0
     Config Lcd = 16 * 4
     Initlcd
     Stop Watchdog
     
     Do
     Cls
     Lcd "Hallo!!"
     Waitms 500
     Loop
     End
    AtMega32:
    Code:
    $regfile = "m32def.dat" $prog &HFF , &HC4 , &HD9 ,  &H00     ' generated. Take care that the chip supports all fuse  bytes.
     $crystal = 1000000
     $framesize = 64
     $hwstack = 64
     $swstack = 64
     Ddrb = &B11111111
     
     Config Lcdpin = Pin , Rs = Portd.7 , E = Portd.5 , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0
     Config Lcd = 16 * 4
     Initlcd
     stop  WATCHDOG
     
     Do
     Cls
     Lcd "Hallo!!"
     Wait 5
     Loop
     End
    Gruß Sebasti

    Ps: ich bin auch nicht jeden Tag am Basteln. Pro Tag komme ich im Moment durchnittlich auf 25-30 Minuten, für mehr reicht die Zeit im Moment auch nicht.

  2. #2
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    05.03.2008
    Alter
    38
    Beiträge
    947
    Ach armer Sebasti

    beide Controller sollen einen ESD-Schaden haben obwohl das Blinkprogramm Funktioniert?
    Ja, mit ESD muss man nicht unbedingt ganzen µC zerschossen haben.

    Der Port auf welchem die Enable-Leitung liegt funktioniert NICHT!
    Wie jetzt? Weder HIGH noch LOW?

    Beim Beobachten mit den LEDs habe ich aber festgestellt das PortB.3 (Db4) PortB.7 (Rs) ständig High sind. Ist das Normal?
    Hast du während das LCD-Programm lief, die LEDs beobachtet oder anderes Programm füer LEDs geschrieben?

    Code:
    $crystal = 1000000
    1MHz Quarz?

    Edit: Laut Schaltplan hast du ein 16MHz Quarz drin...
    Geändert von 5Volt-Junkie (16.03.2011 um 18:44 Uhr)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    08.01.2007
    Ort
    Bonn
    Alter
    33
    Beiträge
    48
    Hallo Sheff,

    gut, das nächste mal sollte ich noch ausführlicher schreiben.


    beide Controller sollen einen ESD-Schaden haben obwohl das Blinkprogramm Funktioniert?
    Ja, mit ESD muss man nicht unbedingt ganzen µC zerschossen haben.
    Das musste ich leider feststellen. Bis jetzt war ich der Überzeugung das es nur ein geht/geht nicht gibt.

    Der Port auf welchem die Enable-Leitung liegt funktioniert NICHT!
    Wie jetzt? Weder HIGH noch LOW?
    Mhhhh, jetzt funktioniert sie. Gestern war die LED immer aus (Low). Das deutet wohl auf einen Wackelkontakt

    Beim Beobachten mit den LEDs habe ich aber festgestellt das PortB.3 (Db4) PortB.7 (Rs) ständig High sind. Ist das Normal?
    Hast du während das LCD-Programm lief, die LEDs beobachtet oder anderes Programm füer LEDs geschrieben?
    Ich habe das Display abgeklemmt und meine LEDs angeschlossen. Im Anhang findest du übrigens den Schaltplan der Platine.

    $crystal = 1000000
    1MHz Quarz?
    Internen Quarz, 1 MHz. Im Screenshot von den Fusebites erkennt man das auch.

    Mir ist noch etwas aufgefallen:
    Und zwar benutze ich auf dem RnMega2560-Board immer folgendes Programm um sehen zu können ob das Teil noch funktioniert (Blinkprogramm):
    Code:
    $prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus
    
    $regfile = "m2560def.dat"
    
    
    $crystal = 16000000                                         'Quarzfrequenz
    
    Config Pind.5 = Output
    Led Alias Portd.5
    Const Cdebug = 1
    
    $baud = 9600
    Dim I As Long
    I = 0
    
    Led = 0
    Wait 1
    Led = 1
    Wait 1
    Do
    I = I + 1
    Led = 1
    Waitms 50
    Led = 0
    Waitms 60
    Loop Until I = 5
    
    
    Do
    I = 0
    Led = 0
    Waitms 1100
    
    Do
      Led = 0
      Waitus 1
      Led = 1
      Waitus 9
      I = I + 1
    Loop Until I = 110000
    
    Led = 1
    Waitms 1100
    
    Loop
    
    End
    
    End
    Für den AtMega32 habe ich den Code bis auf die Einstellungen nicht verändert:

    Code:
    $regfile = "m32def.dat" $prog &HFF , &HC4 , &HD9 , &H00     ' generated. Take care that the chip supports all fuse bytes.
    $crystal = 1000000
    $framesize = 64
    $hwstack = 64
    $swstack = 64
    
    Config Pind.1 = Output
    Led Alias Portd.1
    Const Cdebug = 1
    
    
    Dim I As long
    I = 0
    
    Led = 0
    Wait 1
    Led = 1
    Wait 1
    Do
    I = I + 1
    Led = 1
    Waitms 50
    Led = 0
    Waitms 60
    Loop Until I = 5
    
    
    Do
    I = 0
    Led = 0
    Waitms 1100
    
    Do
      Led = 0
      Waitus 1
      Led = 1
      Waitus 9
      I = I + 1
    Loop Until I = 110000
    
    Led = 1
    Waitms 1100
    
    Loop
    
    End
    Komicherweise braucht der AtMega32 c.a. 5x länger wie der RnMega um die Variable I auf den Wert von 110000 hochzuzählen. Das Blinken am Anfang passiert absulut synchron. Erst beim Hochzählen der Variable merkt man das der AtMega 32 wesentlich länger braucht als der RnMega2560. Ich wüsste nicht das der AtMega32 nicht zu hoch zählen kann?

    Kennt zufälligerweise jemand den Grund?

    Und nochmal danke für eure Hilfe & Bemühungen.

    Gruß Sebasti
    Angehängte Dateien Angehängte Dateien
    Geändert von Sebasti (16.03.2011 um 19:48 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Na gut, die laufen auf verschiedenen Frequenzen. Das hat also nichts mit den Typen zu tun.
    Dies hier
    Do
    Led = 0
    Waitus 1
    Led = 1
    Waitus 9
    I = I + 1
    Loop Until I = 110000

    dauert bei 1 MHz
    80 Takte * 110000 Durchläufen / 1.000.000 = 8,8 sec

    bei 16MHz
    229 * 110000 /16.000.000 = 1,57 sec

    Waitus 1 alleine benötigt 2µs bei 1 MHz Takt, also schon doppelt so lange.
    Wenn du wirklich nur einen Takt warten willst, setze ein NOP ein.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    08.01.2007
    Ort
    Bonn
    Alter
    33
    Beiträge
    48
    Ahh, daher rührt das also.
    Soweit bin jetzt auch noch nicht das ich da selber drauf gekommen währe.

    Habe grade beschlossen einen weiteron Controller (Atmega auszupacken und die Displayplatine neu zu löten damit ich einfach das Beispielprogramm aus der Wiki kopieren kann. Dann werden wir sehen ob es klappt.

    Gruß Sebasti

  6. #6
    RN-Premium User Roboter Genie Avatar von 5Volt-Junkie
    Registriert seit
    05.03.2008
    Alter
    38
    Beiträge
    947
    Vorher an die Heizung oder PC-Gehäuse oder irgendwas, was geerdet ist, anpacken
    Geändert von 5Volt-Junkie (17.03.2011 um 22:42 Uhr)

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    08.01.2007
    Ort
    Bonn
    Alter
    33
    Beiträge
    48
    So, habe es endlich geschafft mich darum zu kümmern.
    Schuldigung für die Verzögerung, aber die Ausbildung gehlt leider vor.

    Das Ergebnis ist leider negativ.
    Der Aufbau:
    -Spannungsversorgung mit Hilfe eines LM2574-N5 (Step-Down Schaltregler, 5V, 0,5A)
    -Eingangspannung: 10V
    -Atmega 8
    - Alle Ports sind über 10 polige Wannenbuchsen hinausgeführt. Die Leitungen an welche auch der ISP-Programmer hängt sind über einen 10k-Widerstand herausgeführt

    Der LCD ist an PortD angeschlossen.
    Den AtMega8 habe ich mithilfe einer LED und des Blinkprogrammes überprüft.
    Das Ergebnis war das alle Port funktionieren und richtig an den Wannenstecker angeschlossen sind. Das Bascom-Programm habe ich mir aus der Wiki kopiert.
    Trotzdem zeigt der LCD nichts an!

    Ich werde mich wahrscheinlich erst wieder in 2 Wochen drum kümmern können. Dann werde ich aber viel Zeit haben und bei anderen kleineigkeiten gucken ob ich ähnliche Probleme habe .

    Gruß Sebasti

Stichworte

Berechtigungen

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

Labornetzteil AliExpress