Forum: Mikrocontroller und Digitale Elektronik lcd keine funktion auf atmega16 portc


von Peter K. (pker)


Lesenswert?

hallo!
wieso funktioniert das mein lcd nicht an portc des atmea16?
1
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portb.7 , Rs = Portb.6
gibt es dafür einen bestimmten grund?


mfg
peter

von Peter K. (pker)


Lesenswert?

sorry meinte so:
1
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2

von holger (Gast)


Lesenswert?

JTAG Fuse abschalten.

von Uwe (de0508)


Lesenswert?

Meistens ist der JTAG aktiviert und PortC deshalb blockiert.

Das Datenblatt ist den Freund und klärt dich hierzu genau auf.

ok ?

von Spess53 (Gast)


Lesenswert?

Hi

>gibt es dafür einen bestimmten grund?

JTAG-Fuse?

MfG Spess

von Martin S. (tungl)


Lesenswert?

Jup, Fuses aendern und damit JTAG deaktivieren. Dazu werden naemlich 
standardmaessig Teile von PORT C verwendet.

von Peter K. (pker)


Lesenswert?

Danke!

von Peter K. (pker)


Lesenswert?

hallo!
habe JTAG Deaktiviert und es passiert nach wie vor nichts!

Woran kann das liegen?

von Peter K. (pker)


Angehängte Dateien:

Lesenswert?

Hier noch ein Screenshot

Gruß Peter

von Peter K. (pker)


Lesenswert?

Ich habe nach wie vor kein funktion auf dem lcd!
gibt es noch etwas das ich tun muss?

Beschaltung:
1
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2


gruß Peter

von Uwe (de0508)


Lesenswert?

Peter so wie du das hier Problem hier schreibst, kann man nur Raten.

Es gibt keinen Schaltplan und keine Bilder vom Aufbau.

Eine Idee habe ich noch für Dich: wie viele Pins (Signalleitungen) eines 
LCD müssen mindestens beschaltet werden, wenn Vcc,Vee und Vdd nicht 
gezählt werden?

Und welech sind diese?

von Peter K. (pker)


Lesenswert?

Ich habe es nach diesem Schema aufgebaut.

http://1.1.1.4/bmi/halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/lcd_atmega8_v13.gif

Nur:
Alle Leitungen auf PortC
und ein ATmega16 statt ATmega8
Ansonsten wie auf dem bild zu sehen!

Gruß Peter

von Thomas D. (thomasderbastler)


Lesenswert?

Angabe LCD Grösse fehlt ?

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
   Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Config Lcd = 16 * 2

von Peter K. (pker)


Lesenswert?

das könnte sein bin aber nicht zuhause am Rechner um es zu überprüfen!
wenn es das ist trete ich mir selber in den ar...!

Gruß Peter

von Peter K. (pker)


Lesenswert?

Uwe S. schrieb:
> Eine Idee habe ich noch für Dich: wie viele Pins (Signalleitungen) eines
> LCD müssen mindestens beschaltet werden, wenn Vcc,Vee und Vdd nicht
> gezählt werden?
>
> Und welech sind diese?

also ich glaube es sind 6 (4 datenleitungen ein Register-Selekt und ein 
Enable)

Oder?

Gruß Peter

von Thomas D. (thomasderbastler)


Lesenswert?

Ich kenne es so, daß jedesmal die Grösse angegeben wird. Anders gesagt, 
hatte ich nie probiert ohne...

Bei mir funzte das LCD Display immer, egal ( fast ) an welchem Ausgang.

von Thomas D. (thomasderbastler)


Lesenswert?


von Uwe (de0508)


Lesenswert?

Hallo,

nun schau mal hier:

http://www.sprut.de/electronic/lcd/index.htm#stecker

es sind 7 Signale, eines liegt wohl bei Dir fest auf GND: R/W Pin 5

von Karl H. (kbuchegg)


Lesenswert?

Uwe S. schrieb:
> Hallo,
>
> nun schau mal hier:
>
> http://www.sprut.de/electronic/lcd/index.htm#stecker
>
> es sind 7 Signale, eines liegt wohl bei Dir fest auf GND: R/W Pin 5

R/W wird von BASCOM nicht benutzt.

von Uwe (de0508)


Lesenswert?

Hallo Karl Heinz,

ja das ist mir schon klar mit dem R/#W Signalen bei Bascom, aber 
beschalten müsste man ein Eingang schon, sonst geht das nichts !

Ich denke der TO hat R/#W Eingang nicht beschaltet.

von Peter K. (pker)


Lesenswert?

R/W zieht auf GND wie in dem beispiel auf Halvar.at (sihe bild link)

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/lcd_atmega8_v13.gif

Nur:
Alle Leitungen auf PortC
und ein ATmega16 statt ATmega8

von Wuselsauger (Gast)


Lesenswert?

Hallo,

welche Typ-Bezeichnung hat Dein LCD?

Du schreibst, es tut sich nichts. Überhaupt nichts?

Wenn Du am Kontrastregler drehst, müssten zumindest auf einer Zeile 
schwarze Klötze erscheinen. Bitte testen.

Grüße vom Wuselsauger

von Peter K. (pker)


Lesenswert?

Ja genau!
Ich hab hier ein 162a (16x2) und ein 161a(16x1)!
Der Kontrast funktioniert auf einer Zeile!

Habe auch mittlerweile  Die option "Config Lcd = 16 * 2 bzw 1) gecheckt!

Hier ein link zum Display:
http://www.reichelt.de/Hintergrund-gruen/LCD-162C-LED/3/index.html?;ACTION=3;LA=446;ARTICLE=31653;GROUPID=3005;artnr=LCD+162C+LED;SID=11UGnAt38AAAIAABhkL8w8073326c5a42f16791e59da1467584d8

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal ein Testprogramm für dich. Brenn die HEX Datei
und sag was du siehst.

von Peter K. (pker)


Lesenswert?

geht auch nichts!
ist die display config richtig in deinem prog.?

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , 
Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Config Lcd = 16 * 2

von holger (Gast)


Lesenswert?

>geht auch nichts!

Schade.

>ist die display config richtig in deinem prog.?

Ich denke schon, ist aber kein BASCOM;)
Kannst ja noch mal kontrollieren:
1
#ifdef INTERFACE_4_BIT_MIX
2
 #define LCD_RS_BIT    2    //LCD Register Select Pin
3
 #define LCD_RS_PORT  PORTC
4
 #define LCD_RS_DDR    DDRC
5
6
 #define LCD_E_BIT    3    //LCD Chip Select Pin
7
 #define LCD_E_PORT    PORTC
8
 #define LCD_E_DDR    DDRC
9
10
 #define LCD_D4_BIT    4
11
 #define LCD_D4_DDR    DDRC
12
 #define LCD_D4_PORT  PORTC
13
14
 #define LCD_D5_BIT    5
15
 #define LCD_D5_DDR    DDRC
16
 #define LCD_D5_PORT  PORTC
17
18
 #define LCD_D6_BIT    6
19
 #define LCD_D6_DDR    DDRC
20
 #define LCD_D6_PORT  PORTC
21
22
 #define LCD_D7_BIT    7
23
 #define LCD_D7_DDR    DDRC
24
 #define LCD_D7_PORT  PORTC
25
#endif

Tja, ich denke an deiner Verkabelung stimmt was nicht.
Das Programm was ich dir geschickt habe ist compiliert
für ATMega16 mit 16MHz Takt. Meine Routinen funktionieren
mit mindestens 20 verschiedenen Displays. Die Wahrscheinlichkeit
das deins damit nicht will ist sehr gering.

Als erstes solltest du mal die Datenleitungen D0-D3 von
GND lösen und in der Luft hängen lassen. Diese Beschaltung sieht
man zwar oft, aber ich habe sie noch nie benötigt.

von Peter K. (pker)


Lesenswert?

könntest du mir das prog. noch mal mit 8Mhz schicken!
habe keiner 16er quarz da!

danke!

von holger (Gast)


Lesenswert?

>könntest du mir das prog. noch mal mit 8Mhz schicken!
>habe keiner 16er quarz da!

Ich könnte schon, ist aber unnötig weil die
Delays vom Programm dann doppelt so lang sind
und noch weniger ein Problem sein können.

Zwei verschiedene Programme laufen bei dir nicht.
Du hast irgendwas falsch angeschlossen.

von Stefan F. (sfrings)


Lesenswert?

Das ist doch egal, du darfst das Display beliebig langsamer ansteuern, 
nur nicht zu schnell.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

oder hast Du nach dem

Config LcdPin ....

das

Initlcd
Display On

vergessen ?

Man sieht auch nichts, wenn die Spannung am Pin 3 (VEE Stromversorgung 
Kontrastspannung) des LCD Display's nicht stimmt.

von Peter K. (pker)


Lesenswert?

Albert M. schrieb:
> oder hast Du nach dem
>
> Config LcdPin ....
>
> das
>
> Initlcd
> Display On
>
> vergessen ?

das habe ich noch nie gebracht!
aber wie sieht die syntax davon aus?
kannst du mir ein beispiel nennen?

> Man sieht auch nichts, wenn die Spannung am Pin 3 (VEE Stromversorgung
> Kontrastspannung) des LCD Display's nicht stimmt.

habe das display gerade an pord angeschlossen:
1
'########################
2
$regfile = "m16def.dat"
3
$crystal = 8000000
4
'########################
5
6
7
'LCD Config
8
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
9
Config Lcd = 16 * 2
10
Cursor Off
11
12
13
Do
14
15
Lcd "hallo"
16
17
Wait 1
18
19
Cls
20
21
Loop
22
End

Und siehe da? => Am Display liegt es nicht!!!
Am PortD funktioniert es ohne Probleme

von holger (Gast)


Lesenswert?

>Und siehe da? => Am Display liegt es nicht!!!
>Am PortD funktioniert es ohne Probleme

Dann hast du die JTAG Fuse evtl. doch nicht deaktiviert
oder an PORTC hängt irgendwas was das Display stört.
Oder PortC ist einfach defekt.

von Albert M. (Firma: Bastler aus Mönchengladbach) (albertm) Benutzerseite


Lesenswert?

Peter K. schrieb:
> Albert M. schrieb:
>> oder hast Du nach dem
>> Config LcdPin ....
>> das
>> Initlcd
>> Display On
>> vergessen ?
>
> das habe ich noch nie gebracht!
> aber wie sieht die syntax davon aus?
> kannst du mir ein beispiel nennen?

So wie es da steht ist es die vollständige Syntax. Vieleicht schaust Du 
aber selber mal in die BASCOM Hilfe, um zu sehen wie das Display korrekt 
initialisiert wird !

Wenn es an Port D jetzt geht, dann stimmte Deine Vedrahtung am Port C 
nicht oder JTAG ist noch immer aktiviert. Bleibt wohl sonst nicht mehr 
viel übrig.

von Peter K. (pker)


Lesenswert?

Also habe mich jetzt in der Bascom Hilfe belesen und habe es auch so 
ausprobiert:
1
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
2
Config Lcd = 16 * 2
3
Initlcd
4
Display On

Die Fuse JTAG ist 100pro deaktiviert!!!

Habe jetzt ein paar Ports auf C als Output gewählt und eine Led toggeln 
lassen.
Leider ohne Erfolg!
Wen dies nicht funktioniert ist wohl mein PortC im ar...?

ich schau mal eben ob ich noch irgendwo ein mega16 habe!

Gruß
Peter

von MWS (Gast)


Lesenswert?

Vergessen AVCC zu beschalten ?

von Peter K. (pker)


Lesenswert?

Nein ist mit 5V versorgt!

von Peter K. (pker)


Lesenswert?

Ist das normal????
1
'########################
2
$regfile = "m16def.dat"
3
$crystal = 8000000
4
'########################
5
6
Ddrc = &B11111111
7
8
Do
9
10
Toggle Portc.7    'funktioniert
11
Toggle Portc.6    'funktioniert
12
Toggle Portc.5    'funktioniert nicht
13
Toggle Portc.4    'funktioniert
14
Toggle Portc.3    'funktioniert
15
Toggle Portc.2    'funktioniert nicht
16
Toggle Portc.1    'funktioniert nicht
17
Toggle Portc.0    'funktioniert
18
19
Waitms 50
20
Loop
21
End

Wahrscheinlich ist nicht mal der ganze Port defekt

von Peter K. (pker)


Lesenswert?

so hab jetzt einen anderen mega16!
nur leider hat dieser auch einen defekten portc!
aber zum glück nur 1 pin auf den ich verzichten kann!
1
'########################
2
$regfile = "m16def.dat"
3
$crystal = 8000000
4
'########################
5
6
Ddrc = &B11111111
7
8
Do
9
10
Toggle Portc.7    'funktioniert
11
Toggle Portc.6    'funktioniert
12
Toggle Portc.5    'funktioniert
13
Toggle Portc.4    'funktioniert
14
Toggle Portc.3    'funktioniert
15
Toggle Portc.2    'funktioniert nicht
16
Toggle Portc.1    'funktioniert 
17
Toggle Portc.0    'funktioniert
18
19
Waitms 50
20
Loop
21
End

und
1
Config Lcdpin = Pin , Db4 = Portc.7 , Db5 = Portc.6 , Db6 = Portc.5 , Db7 = Portc.4 , E = Portc.1 , Rs = Portc.0
2
Config Lcd = 16 * 2

LCD Funktioniert!!!

Danke an alle die hier viel zeit in mich investiert haben!

Ich mache mir jetzt erstmal ein Festbier auf !!!

Gruß aus München
Peter

von Paul Baumann (Gast)


Lesenswert?

@Peter

Zum Wohl!

Waren die Atmega16 neu?

MfG Paul

von Peter K. (pker)


Lesenswert?

der zweite ja lag aber schon ne weile im schrank!

von Karl H. (kbuchegg)


Lesenswert?

Peter K. schrieb:
> der zweite ja lag aber schon ne weile im schrank!

Das tut ihm ja nichts.
Seltsam ist das schon, dass du 2 Prozessoren hast, die beide einen 
Defekt am Port C haben.
Wenn ich bedenke, was mein Mega16 im Entwicklungsboard schon alles 
weggestecken musste ... und der geht immer noch einwandfrei.

von Peter K. (pker)


Lesenswert?

Ich kann es mir auch nicht erklären!
Und des mit dem neuen erst recht nicht.

Peter

von Paul Baumann (Gast)


Lesenswert?

Ich fragte deshalb, weil ich mit einem Atmega16 auch schon einmal dieses 
"Vergnügen" hatte.
Auf einer Platine habe ich eine Schaltung aufgebaut, die auch über eine 
ISP
Schnittstelle verfügte und der Kontroller gesockelt war. Den ersten 
Mega16 konnte ich dort ohne Mühe programmieren und er funktionierte 
tadellos.
Der 2. dann nicht mehr. (Ebenfalls Port C betroffen)
Die Schaltung war offenbar in Ordnung, denn nach dem Rücktausch auf den 
Ersten war wieder alles in Ordnung.

MfG Paul

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.