- Labornetzteil AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 28 von 28

Thema: Atmega 162 und LM335 !?

  1. #21
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Anzeige

    Praxistest und DIY Projekte
    Hallo
    Also habe da mal kurz nachgeschaut, du hast da ein 128 x 64 Dot Grafikdisplay.
    Da wirst du auf die Schnelle keine Freude haben damit.
    Die Ansteuerung ist etwas kompliziert. Es sei denn du hast eine Library dafür.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  2. #22
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2010
    Beiträge
    13
    So, war im Urlaub und nun beschäftige ich mich wieder mit meiner Elektronik.

    Für das Grafik Display will ich eine Library verwenden wenn ich es erstmal zum laufen bekomme

    Habe nämlich ein Problem den Poti einzubauen. Das Display flackert nur kurz wenn ich es an den Strom hänge und mehr auch nicht.

    Der Poti (22k) hat ja 3 Beine, welches Bein (1; 2; 3) muss ich denn bei meiner Skizze an A; E; S anschließen?

    Bild hier  

    Bild hier  

    Bild hier  


    Danke!

  3. #23
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    A, E (Anfang, Ende) wird bei 1 bzw 2 angeschlossen. Das ist egal, es ändert nur die Richtung, in die man drehen muss wenn man z.B. heller drehen will.
    Der Schleifer (S) ist dan 3.
    Wenn du ein Ohmmeter (Multimeter) hast musst du zwischen 1 und 2 immer den Nennwiderstand des Potis (bei 22k +/- Toleranz) messen. Wenn du den Schleifer drehst muss sich der Widerstand zwischen 1 und 3 bzw 2 und 3 ändern.
    Wenn du das Poti ganz links drehst musst du zw. 1 und 3 0R messen und zw. 2 und 3 22k. Wenn du das Poti ganz rechts drehst ist es genau umgekehrt.

    MfG Hannes

  4. #24
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2010
    Beiträge
    13
    hmmm danke für die Hilfe, dann habe ich den Poti wohl doch richtig angeschlossen, wenn ich Ihn bis zum Ende drehe sehe ich das es etwas heller wird, aber wirklich hell bzw. an sieht das LCD nicht aus obwohl am Display 5V anliegen. Verstehe ich jetzt zwar nicht ganz, aber ich gehe nochmal die Verkabelung durch ob ich was falsch gemacht habe.
    Komme beim Poti immer nur auf 18K obwohl der laut Beschriftung 22k hat.


    Gruß

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2010
    Beiträge
    13
    So habe den Fehler gefunden, laut gefundenem Datenblatt war Pin19+20 nicht angeschlossen, jedoch ist das die Hintergrundbeleuchtung
    Nun stehe ich aber vor dem nächsten Problem, die Ansteuerung. Ich habe nun etliche Codes ausprobiert und modifiziert jedoch bleibt mein LCD leer.

    Irgendwie habe ich das Gefühl, das der uC die Schleife nicht durchläuft. Ich habe das mal simple getesetet indem ich die Hintergrundbeleuchtung beim Start EIN / AUS schalten lassen wollte, jedoch schaltet er nur EIN und geht dann nicht weiter.

    Hier mal mein Quelltext:

    Code:
    '-----------------------------------------------------------------------------------------
    ' Info:     Programm für KS108 kompatibles LCD mit AT-MEGA168
    ' Autor:    Thilo Sauer DL9NBJ
    ' Homepage: www.darc-coburg.de
    '-----------------------------------------------------------------------------------------
    
    $regfile = "m128def.dat"
    $baud = 9600
    
    Config Portd.7 = Output                                     'LCD Hintergrundbeleuchtung
    
    Licht Alias Portd.7                                         'Hintergrundbeleuchtung
    Aus Alias 1
    Ein Alias 0
    Licht = Aus
    
    Declare Sub Blinken                                         'Unterprogramm
    
    
    $lib "glcdKS108.lib"                                        'Bibliothek für LCD
    '$include "smallfont8x8.font"                               ' nur Zahlen
    $include "font8x8.font"                                     ' kleine Schrift
    '$include "font8x8TT.font"
    $include "font16x16.font"
    
    
    Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 6 , Ce2 = 7 , Rd = 4 , Reset = 2 , Cd = 3 , Enable = 5
    '*** INFO ***
    'CE =CS1  Chip select
    'CE2=CS2  Chip select second chip
    'CD=Data/instruction
    'RD=Read
    'RESET = reset
    'ENABLE= Chip Enable
    
    
    Dim X As Integer
    
    Do
    
      Licht = Ein
      Waitms 300
      Licht = Aus
      Waitms 300
      Licht = Ein
    
      '*** TEXT ***
      Cls
      Setfont Font16x16
      Lcdat 1 , 1 , "PG12864A" , 1
      Setfont Font8x8
      Lcdat 4 , 1 , "Graphic LCD"
      Wait 1
      Lcdat 5 , 1 , "128x64 Pixel"
      Wait 1
      Lcdat 6 , 1 , "KS108 Controller"
      Wait 1
      Lcdat 8 , 1 , "+Ub = 5 VOLT "
      Wait 3
      Gosub Blinken
    
      '*** Linie ***
      Cls
      Wait 1
      Line(0 , 0) -(127 , 0) , 1
      Line(127 , 0) -(127 , 63) , 1
      Line(127 , 63) -(0 , 63) , 1
      Line(0 , 63) -(0 , 0) , 1
      Line(0 , 0) -(127 , 63) , 1
      Line(0 , 63) -(127 , 0) , 1
      Wait 2
      Gosub Blinken
    
      '*** Kreis ***
      Cls
      Circle(63 , 31) , 30 , 1
      Wait 2
      Gosub Blinken
    
    Loop
    
    ' Unterprogramm
    
    Sub Blinken
      For X = 0 To 3
      Licht = Aus
      Waitms 200
      Licht = Ein
      Waitms 200
      Next X
      X = 0
    End Sub
    
    End
    Den Reset Port habe ich nicht am uC liegen (geht direkt über einen R an V+), jedoch steht er mit in der Definition. Ist das ein Problem? Denn sobald ich ihn herausnehme gibt es Fehler beim compilen.

    Als Dataport ist Port C angegeben, aber es werden niergens die einzelnen Ports DB4-DB7 definiert, muss man das nicht? In meinem Fall wäre das nämlich PortC.4 = DB4 usw.

  6. #26
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    1 ist A
    2 ist E
    3 ist S
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2010
    Beiträge
    13
    Hallo, habe nun das LCD nochmals komplett neu angeschlossen und beim programmieren gemerkt, dass wenn ich "CONFIG GRAPHLCD" in den Quellcode mit aufnehme läuft der Atmega die Schleife nicht mehr durch. Woran kann das liegen? Ich bin langsam am verzweifeln.

    Ohne den Config graphlcd blinkt die LED, so sehe ich das der Atmega läuft und mit config graph lcd leuchtet sie dauerhaft.

    Code:
    '#### Prozessordaten definieren
    $regfile = "m128def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    
    '#### Alias für Port Namen
    Led Alias Porte.2
    
    
    '#### Port definieren (inp/out)
    Config Led = Output
    
    
    '#### include von Daten & Lib's
    $lib "glcdKS108.lib"
    $include "font8x8.font"
    
    
    Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 7 , Ce2 = 6 , Cd = 4 , Rd = 3 , Enable = 2 , Reset = 5 , Mode = 8
    '*** INFO ***
    'CE =CS1  Chip select
    'CE2=CS2  Chip select second chip
    'CD=Data/instruction
    'RD=Read
    'RESET = reset
    'ENABLE= Chip Enable
    
    
    '#### Programmablauf in einer Schleife
    '#### Port Status: 1 = aus (0V); 0 = an (5V)
    Do
       Cls
    
    '#### Status LED zum prüfen des Programmablaufs
       Toggle Led
       Waitms 50
    
    
    Loop
    
    End

    Ich bin mir auch nicht so sicher was die Port Zuweisung betrifft, ich finde stehts unterschiedliche Meinungen

    Ich habe es wie folgt angeschlossen:
    PortC = DB0-DB7
    PortA.2 = E
    PortA.3 = RW
    PortA.4 = DI
    PortA.5 = RST
    PortA.6 = CS1
    PortA.7 = CS2

    Dann müsste die config graplcd doch so aussehen, oder!??!
    Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 7 , Ce2 = 6 , Cd = 4 , Rd = 3 , Enable = 2 , Reset = 5 , Mode = 8


    Bild hier  


    Kann mir jemand weiter helfen??

  8. #28
    Neuer Benutzer Öfters hier
    Registriert seit
    30.09.2010
    Beiträge
    13
    Hallo, da mir leider keiner mit dem GraphLCD weiterhelfen konnte, habe ich mir ein 16x4 LCD (http://www.produktinfo.conrad.com/da..._LED_de_en.pdf) gekauft um damit weiter zu testen.

    Unter meinem Atmega8515 habe ich es zum laufen bekommen, jedoch unter dem Atmega128 nicht. Nur diesen brauche ich wegen den AD Eingängen.

    Bei mir ist die 1. und 3. Zeile des Displays mit schwarzen Kästchen gefüllt. Die 2. und 4. Zeile ist leer.

    Habe das Gefühl als würde es nicht richtig initialisieren, nur wieso weiß ich nicht.

    Mein Code ist für den 8515 und 128er der selbe, nur die Ports halt angepasst.

    Woran kann das liegen? Meine Test LED wie im Code beschrieben zeigt auch keine Reaktion.


    Code:
    '#### Prozessordaten definieren
    $regfile = "m128def.dat"
    $hwstack = 32 ' default use 32 for the hardware stack
    $swstack = 10 ' default use 10 for the SW stack
    $framesize = 40                                             ' default use 40 for the frame space
    $crystal = 800000
    $baud = 9600
    
    
    '#### Alias für Port Namen
    Led Alias Portb.0
    
    
    '#### Port definieren (inp/out)
    Config Led = Output
    
    '#### Port Status: 1 = aus (0V); 0 = an (5V)
    Led = 0
    
    'Meine Konfig
    'NC = Db.0
    'NC = Db.1
    'NC = Db.2
    'NC = Db.3
    'Porte.4 = Db.4
    'Porte.5 = Db.5
    'Porte.7 = Db.6
    'Porte.6 = Db.7
    'Porte.3 = E
    'Porte.2 = Reset
    'GND = R/W
    
    '#### LCD einrichten
    Initlcd
    Config Lcdpin = Pin , Rs = Porte.2 , E = Porte.3 , Db4 = Porte.4 , Db5 = Porte.5 , Db6 = Porte.7 , Db7 = Porte.6
    Config Lcd = 16 * 4
    Config Lcdbus = 4
    Cursor Off Noblink
    
    Wait 1
    
    Do
    
       Wait 1
       Led = 1
       Wait 1
       Led = 0
       Wait 10
    
    
       Dim Initcounter As Byte
       Dim Bt As Byte
       Dim S As String * 2
    
    
       Do
          For Initcounter = 1 To 36
             'LCD löschen
             Cls
    
             'Haupttext der ersten Zeile anzeigen
             Locate 1 , 1
             Lcd "...Zeile1..."
    
             'Haupttext der zweiten Zeile anzeigen
             Locate 2 , 1
             Lcd " ...Zeile2..."
    
             'Jede Sekunde um 1 hochzählen und neuen Wert anzeigen
             For Bt = 1 To 99
                'Neuen Wert in einen Text umwandeln
                S = Str(bt)
                S = Format(s , "00")
    
                'Neuen Wert in der ersten Zeile ab Spalte 15 anzeigen
                Locate 3 , 8
                Lcd S
                Locate 3 , 5
                Lcd ">>>"
                Locate 3 , 10
                Lcd "<<<"
    
                'Neuen Wert in der zweiten Zeile ab Spalte 15 anzeigen
                Locate 4 , 8
                Lcd S
    
                'Eine Sekunde warten
                'Goto Led12
                Wait 1
             Next Bt
    
             'Das LCD nach ca. einer Stunden neu initialisieren
             If Initcounter = 36 Then
                Initlcd
             End If
          Next Initcounter
       Loop
    
    Loop
    
    End

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

LiFePO4 Speicher Test