mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik pollin programmer +addon board lcd ansteuern


Autor: Kersio (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi an Alle,
Ich bin erst seit einer woche -/+paar tage
am programmieren dran und hab mir das pollin programmier board +addon
gekauft und einen ATmega32.
dan hab ich mich mal hingesetz und mit bascom ein lauflicht geschrieben.
Jezt wollt ich aber noch den lcd ansteuern aber ich bin mir nicht sicher
ob das so richtig ist wie ich das gemacht haben einen teil für den 
display habe ich aus
den samplers von bascom genommen und nur die ports verändert.
habe schon einiges auspobiert aber nichts, ich nehm mal an das ich
irgendwo ein fehler habe weis aber jezt nicht wo .
das lauf licht funktioniert einwand frei mit 8 led`s.
Bedanke mich schonmal im voraus für die hilfe



(und and alle die rechtschreib fehler finden dürfen sie behalten ich
will nur hilfe und kein deutsch unterricht^^)

kersio

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf dem Board wird für das LCD das R/W auch benötigt. In deinem Programm 
allerdings nicht vorgesehen.
Du müsstest R/W Richtung LCD auf GND legen, Richtung Kontroller aber 
offen lassen.

Autor: Kersio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
d.h ich muss r/w auf gnd machen ??
und wie meinst du das ichs richtung
controller offen lassen soll
?

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
R/W musst du auf GND legen. Wenn du das allerdings fest machst, dann 
liegt auch am Kontrollerpin der GND an. Wenn du den dann auf Ausgang und 
high schaltest, dann kannst du den Port zerstören.
Du kannst aber in deinem Programm den Pin auf GND legen und weiter nicht 
benutzen, zum Testen wird es gehen, halte ich aber sonst für gefährlich.

Autor: Kersio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ahso ein rw auf gnd und das wars dah ichs ja nicht fest habe sondern mit 
steck brucken
muss ich auch nichts weiter machen  ,
und mit der sofware stimmt auch alles ?
wen du sie dir angeguckt hast

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit BASCOM kenne ich mich nicht aus, verwende die LCD aber selbst mit 
und ohne R/W.
Probier es einfach aus, es kann nichts passieren.

Autor: Kersio (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mhh geht mit beidem nicht ??
hab alles angeschlossen von 4-7 +e ncrw rs alles und ncihts liegts nicht 
an meiner sofware ?
displa ist angelotet aufs board vill solt man den weg machen ??

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du so sorgfältig lötest, steckst und programmierst wie du auch 
schreibst, wird das nix.
Sorry

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beim löte bin ich mir sicher ich arbeite bei ner firma vo ich 8 stunden 
nur smd teile löte unteranderren atmel chips in smd mit 182 also bei den 
teilen wo auf dem board waren hatte ich keine probleme
ich weis nicht obs hilf aber bd 0 -3 sind nciht angeschlossen
hab gelsene das man die nciht braucht ?? oder

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Config Lcdbus = 8

Ich kann zwar kein BASCOM, aber da würde ich es mal
mit einer 4 versuchen.

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habs grad mit 4 probiert und es geht immer noch nicht

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehst du überhaupt was auf dem Display?
Schwarze Balken z.B.? Wenn nein dann dreh mal am Kontrast.

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das funktioniert auch am kontras spiel ich auch jedesmal rum nach den 
programierren um zu sehn ob ichs falsch eingestellt hab abber nichts nur 
schwarze balken oder garnichts

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nur schwarze balken

Schwarze Balken heisst: Init nicht erfogreich.

1) Anschlüsse passen nicht zum Programm
2) Leitung offen
3) Kurzschluss
4) Timing im Programm falsch, Taktfrequenz höher als im Programm 
eingestellt

Oder das Display ist nicht kompatibel zum HD....

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein die schwarzen balkne kommen wen ich am kontrast volldreh

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ho, ho!

>print " hallo "

Lcd " hallo "

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
print in lcd änder? oder was sol das heisen ??

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Ausgabebefehl für das LCD ist nicht
print "Hallo"
sondern
Lcd "Hallo"

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht solltest du dir von hier das Handbuch herunterladen: 
www.mikrocontroller.net/articles/Bascom_AVR

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Example
$regfile = "m48def.dat"
$crystal = 4000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 ,
Databits = 8 , Clockpol = 0
Print "Hello"
'Now change the baud rate in a program
Baud = 9600
Print "Did you change the terminal emulator baud rate too?"
End




ist aus der pdf datei um mit lcd geht nicht mal die simulation

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So sollte dein Progamm aussehen; Pins natürlich angepasst.
R/W deines LCD´s mit 10 Ohm an Masse.
Pin 4-7 angeschlossen + RS + E
-------------------------------------

$regfile = "m16def.dat"
$crystal = 16000000
$hwstack = 32                      ' default use 32 for the hardware 
stack
$swstack = 20                       ' default use 10 for the SW stack
$framesize = 40                     ' default use 40 for the frame space

Config Lcdbus = 4

' hier werden deine LCD Pins eingestellt
Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.3 , Db6 = Porta.4 ,
Config Lcdpin = Pin , Db7 = Porta.2 , E = Portb.0 , Rs = Portb.1

'dein Display 16= 16 Zeichen pro Zeile   *2 = zwei Zeilen
Config Lcd = 16 * 2

Initlcd      'muss nicht unbedingt sein
 Cls
 Locate 1 , 1
 Lcd "Hallo Welt"

END
--------------------------

Gruß

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe ich alles auser
initlcd und stat lcd habe ich print

und im ersten beitrag von mir ist eine bas datei mit dem programm

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>stat lcd habe ich print

Raffst du das nicht? print geht auf den UART und nicht aufs LCD.
Lcd geht aufs LCD.

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit "print" schickst du die Daten an die Serielleschnittstelle, NICHT 
ans LCD.

Autor: Bernard Hamzaj (benben)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
achso mhh hab ja gesagt das das mein erstes richtige programm ist und 
mit lcd gehts immer noch nciht hab noch mal die bas datei hochgeladen 
habs se jezt mal so weit ich konnte verändert und wollt jezt wissen obs 
past

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teste bitte mal nur das!


Bei Config Lcdpin noch deine PINS eintragen
-->  Config Lcdpin = Pin , Db4 =......

-------------------------------

$regfile = "m32def.dat"            ' specify the used micro
$crystal = 1000000                  ' used crystal frequency

$hwstack = 32                     ' default use 32 for the hardware 
stack
$swstack = 10                     ' default use 10 for the SW stack
$framesize = 10                 ' default use 40 for the frame space

Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.3 , Db6 = Porta.4 ,
Config Lcdpin = Pin , Db7 = Porta.2 , E = Portb.0 , Rs = Portb.1

Config Lcd = 16 * 2

Config Lcdbus =

Initlcd
Cls
Locate 1 , 1
Lcd " hallo"

End

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne hat nicht funktioniert


und was ist mit denm stack ist doch ein fehler ??

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
du hast recht, das zweite stack muss weg.
Kommt vom Zeilenumbruch im Textfeld.
Es gehört hierzu:  ' default use 32 for the hardware """stack"""

Das Programm ist, bis auf das "stack",aber i.O.

Hast du die LCD Pins angepasst?? Ich weis ja nicht, wie das LCD 
angeschlossen ist.

Läuft der Atmega 32 wirklich nur mit 1Mhz, Pollin hat doch einen 16MHz
Quarz auf dem Board. -->Bei dir:    $crystal = 1000000
Kannst du mal die FUSE überprüfen.

Ist der RW Pin deines LCD´s über einen 10KOhm auf Masse?

Gruß

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Config Lcdbus =

Da fehlt die 4.

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig die "4" habe ich unterschlagen!

$regfile = "m32def.dat"
$crystal = 1000000                  ' DEIN Takt !!! Fuse Bits beachten

$hwstack = 32
$swstack = 10
$framesize = 10

Config Lcdpin = Pin , Db4 = Porta.5 , Db5 = Porta.3 , Db6 = Porta.4 ,
Config Lcdpin = Pin , Db7 = Porta.2 , E = Portb.0 , Rs = Portb.1

Config Lcd = 16 * 2

Config Lcdbus = 4

Initlcd
Cls
Locate 1 , 1
Lcd " hallo"

End

Autor: Martin Schuster (tinotino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mir mal den Schaltplan vom Pollin geholt.
Du hast ja nur am Addon Board 13 Jumper für´s LCD + die Jumper am 
Eva-board.
Ich denke, du hast einfach eine oder mehrere Jumper, falsch gesetzt.
dank Holger haben wir den letzten Softwarefehler beseitigt- der Rest ist 
der Hardware zu zuschreibe.

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja hab mit stk500  den internen oszilator auf 1mhz gesetz deswegen
$crystel´=1000000
und wegen den jumpern habe keine jumper gesetz habe eigenes programm 
verwendet und deswegen steck brücken gesetz nun ja jezt hab ich mal den 
lcd runter gelötet und versuchs mal so dran zumachen mit kabel um einen 
platinen kurzschlus oder hardware fehler ausschliesen
nun ja
ich erstatte nacher mal ein bericht wie weit ich gekommen bin

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mhh habe jezt mal den display runter gelötet die stift leiste vermuttete 
da einne kurz schlus hab die bahnen vervolg habe den display mal hin 
gesteckt ohne steck leist aber nichts iwi ist displa schrot oder es ist 
was andres man man man ich weis nicht was los istnormal solst doch jezt 
tun ?? mhh solangsam verzweifel ich

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat der Atmega32 nicht Jtag, denke schon.
Deaktiviere in den Fuse dieses mal.

siehe:http://www.holger-klabunde.de/avr/avrhelp.htmJTAGEN Fuse

"Wer diese Fuse brennt kann die Pins TMS, TCK, TDI, TDO im Programm 
nicht mehr benutzen weil sie für die JTAG Schnittstelle reserviert 
werden. Diese Fuse ist im Auslieferzustand aktiv ! Wer die Pins braucht 
muß die JTAGEN Fuse auf 1 setzen."

Gruß

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bei mir sind nur die bits gesetz : spien  sut1  cksel 3  cksel 2 chksel 1

sonst keine

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was kan ich da noch machen wen alles nicht geht auser ein neues prog 
board zu kaufen ??

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst noch jede Leitung vom KOntroller zum LCD messen, ob eine 
Verbindung besteht und auch ob kein Kurzschluss zu einer anderen 
Leitung, GND oder VCC besteht.

Autor: Daniel F. (df311)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernard Hamzaj schrieb:
> was kan ich da noch machen wen alles nicht geht auser ein neues prog
> board zu kaufen ??

mit einem kleineren programm anfangen, da du ja (laut erstem beitrag) 
erst seit kurzem programmierst.

versuch doch, die einzelnen programm aus dem asm-tutorial (in bascom 
wenns schon das teil sein muss) nachzuprogrammieren. wenn du dann zum 
lsd gekommen bist, dann solltest du dir auch schon einiges an wissen 
angeeignet haben, um grundlegende probleme mit dem programm selbst zu 
lösen/finden.

und wie schon vorgeschlagen das zur programmiersprache/ide passende 
handbuch besorgen - gilt insbesondere für bascom, da dort viele 
funktionen "irgendwie" gekapselt sind (kenne die details nicht, deshalb 
"irgendwie" ;-) )

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seinen Texten nach ist er beim lsd schon angekommen.

Autor: The_ride (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau doch mal hier nach
http://www.dieelektronikerseite.de/uC%20Ecke/Lecti...

cya The_ride

Autor: The_ride (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe da auch mal eine Frage

Mein Source (Anhang) hat keine Fehler beim Compelieren
und trotzdem sehe ich nichts auf meinem Display :(
der Cursor blinkt in der Mitte anstatt am Anfang
ich habe versucht ein Bascom Programm in C umzusetzen
heute ist mein 2. Tag mit C Programmierung.
Bitte nicht lachen wenn etwas Falsch ist ;)

Danke schon mal für die Hilfe

cya The_ride

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, eine etwas eigenwillige Lösung.

1. Mit eienr halbwegs gängigen Formatierung (Einrückung etc.)
wird der Quelltext deutlich lesbarer; dann macht es mehr Spaß....

2. Es gibt hier im Forum bereits fertige Lösungen, um einen LCD
anzusprechen. Dann muß man nicht bei jedem einzeln die Fehler suchen.

3. Muß man zwischen Enable an und aus nicht eine gewisse Zeit warten?

4. Anstatt 50 mal eine msec zu warten, kann man auch gleich 50 msec
warten: _delay_ms( 50 );

5. Etwas Kommentar wäre nicht schlecht; z.B. an welche Pins was
angeschlossen ist, ob man das LCD im 4-Bit- oder im 8-Bit-Modus
betreiben will etc..
Ich kann es mir zwar auch mühsam aus dem Quelltext herausholen, aber
es ist eigentlich deine Sache, das hin zu schreiben.

5. Mit PORTB = rsein setzt man PORTB komplett (alle 8 Bit), ein
anschließendes PORTB = enein setzt ebenfalls den kompletten Port
und überschreibt damit das vorherige rsein. So geht es natürlich
nicht.
Richtig wäre, mit |=... einzelne Bits zu setzen und mit &= ~...
welche zu löschen.
Siehe die fertigen lcd-routines.c, die hier im Forum zu finden sind...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach so, dann noch was: Wenn ich deine merkwürdigen Einrückungen
versuche nachzuvollziehen, dann steht am Ende der while-Schleife
ein exit(1).

Das gibt dann nicht viele Schleifendurchläufe, oder?

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab mir nun mal gester bei pollin en lcd und ein meaga 8 bestell und 
test dan mal meine software an dem andren display vill lieghts ja auch 
an dem display oder giebts da ne methode zu testen ??

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B. die getesteten und bewährten lcd-routines.c aus dem Forum nehmen.
Oder wiederhole ich mich etwa?

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bei bascom giebts auch in den samplers die lcd routine

Autor: Peter Hartmann (the_ride)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe mein Display läuft dank lcd-routines.c

:)

cya The_ride

Autor: Bernard Hamzaj (benben)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so jezt hab ich einen neuen display un zwar display tech 404b ich 
probiers mal mit dem

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.