lcd keine funktion auf atmega16 portc

#2854813
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?
Gast #2855278
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
OP #2855325
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
Gast #2855434
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.
Gast #2855446
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.
OP #2855470
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
Gast #2855475
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.
(Firma: Bastler aus Mönchengladbach) Persönliche Seite #2855488
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.
OP #2855534
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
OP #2855569
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
OP #2855612
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
Gast #2855903
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren