Forum: Mikrocontroller und Digitale Elektronik LCD an PORTB ATmega8


von Patrick R. (pat711)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe nun das selbe problem und hoffe ihr könnt mir behilflich sein.
Das Display ist folgendermaßen angeschlossen:
(nur Pins zum controller, versorgung ist auch dran und RW ist auf GND)
DB 4  ->  PB0
DB 5  ->  PB1
DB 6  ->  PB2
DB 7  ->  PB3
E     ->  PB5
RS    ->  PB4

Wenn ich nun den Controller flashe passiert erst mal nichts, wenn ich 
dann reset drücke verschwinden die schwarzen balken vom display, welche 
immer beim einschalten kommen.
An PB 6/7 (XTAL 1 und 2) ist ein 16MHz Quarz angeschlossen.
Das Display muss unbedint an diesen Port, da PortC als ADC verwendet
wird und an PORTD benötige ich die INT - Eingänge.
Um die Fehlersuche zu vereinfachen habe ich den Code auf ein minimales
reduziert (hoffe ich hab nichts vergessen).
thx schon mal an alle, die sich ein wenig zeit für mich nehmen

Mfg, Pat

von Karl H. (kbuchegg)


Lesenswert?

Patrick R. schrieb:

> Wenn ich nun den Controller flashe passiert erst mal nichts, wenn ich
> dann reset drücke verschwinden die schwarzen balken vom display, welche
> immer beim einschalten kommen.

Das ist schon mal gut. Das bedeutet, dass die Initialisierung dann 
klappt.

Bau in dein Programm noch eine kleine Verzögerung nach dem Einschalten 
ein.
Auch der auf dem LCD vorhandene Controller benötigt ein wenig Zeit, bis 
er dann endlich aufnahmefähig ist.

von Patrick R. (pat711)


Lesenswert?

Wow, danke für die schnelle antwort,
hab jetzt mal ein delay von 1 sekunde eingabeut, das sollte ja 
eigentlich reichen. Das Programm sieht nun folgendermasen aus:
1
#include <avr/io.h>
2
#include "lcd-routines.h"
3
#include <stdlib.h>
4
#include <util/delay.h>
5
6
void long_delay(uint16_t ms) 
7
{
8
    for(; ms>0; ms--) _delay_ms(1);
9
}
10
11
int main(void)
12
{
13
  long_delay(1000);
14
  lcd_init();
15
  set_cursor(0,0);
16
  lcd_string("test");
17
  while(1)
18
  {
19
  }
20
  return 0;
21
}

von Karl H. (kbuchegg)


Lesenswert?

Ja sollte es.

Was ich noch fragen wollte:
Wenn du die Situation hast, dass der Balken verschwindet, kommt dann der 
Text? (Sollte eigentlich)

Wenn nicht: Hast du dann schon mal am Kontrast rumgedreht?

von Patrick R. (pat711)


Lesenswert?

Kontrast ist auf vollem Kontrast. Und die balken die da verschwinden 
gehn einfach weg und dann kjommt da au nix mehr. Auch nicht wenn ich 
noch n paar mal resette. werde nun noch mal die pinbelegung überprüfen.
Achso, Hardware ist außerdem das Experimentierboard von pollin mit 
erweiterungsboard falls das jmd was sagt. Fürs STK500 hab ich noch kein 
display ^^.

von Karl H. (kbuchegg)


Lesenswert?

Patrick R. schrieb:
> Kontrast ist auf vollem Kontrast.

?

Ähm. Was soll das heißen.
Auf dieser Ebene gibt es keinen 'vollen Kontrast'. Du drehst am 
Kontrastpoti (so du eines hast) und stellst die Kontrastspannung so ein, 
dass du Zeichen lesen kannst.

'Voller Kontrast' ist ein Begriff für Benutzerweicheier. Auf der Ebene, 
auf der wir uns bewegen, stellen wir eine Spannung solange ein, bis sich 
optimale Bedingungen ergeben.

Welche Spannung misst du am Kontrasspannungseingang (gegen Masse)?
(meistens sind es so um die 0.5V. Da sollte man die Zeichen dann schon 
sehen, wenn auch nicht optimal. Die Feinarbeit macht man dann mit 
ruhiger Hand und einem Schraubenzieher)

von Patrick R. (pat711)


Lesenswert?

der Kontrast ist so eingestellt, dass die Zeichen optimal sichtbar sind, 
den hab ich eingestellt als ich das Display über PORTD angesteuert habe. 
Außerdem sind die schwarzen balken ja auch gut sichtbar und wenn ich an 
dem Kontrasttrimmer drehe werden sie undeutlicher.

ich vermute den fehler nun in dem übergang zwischen hauptplatine und 
erweiterungsboard, da ich vom pin 14 (PB0) keine verbindung zu dem dafür 
vorgesehenen pin habe.

von Karl H. (kbuchegg)


Lesenswert?

Patrick R. schrieb:
> der Kontrast ist so eingestellt, dass die Zeichen optimal sichtbar sind,
> den hab ich eingestellt als ich das Display über PORTD angesteuert habe.

Und am PORTD hats funktioniert, oder wie soll ich das jetzt verstehen?

Warum sagst du denn nicht gleich, dass du ein funktionierendes LCD vom 
PORTD auf PORTB umgehängt hast und dass es jetzt, am neuen Port nicht 
mehr geht. Dann such ich nach ganz anderen Dingen als wie wenn ich davon 
ausgehe, dass es überhaupt noch nie funktioniert hat.

> Außerdem sind die schwarzen balken ja auch gut sichtbar und wenn ich an
> dem Kontrasttrimmer drehe werden sie undeutlicher.

Wenn du an einem funktionierenden LCD weit genug am Trimmer drehst, 
sieht man auf manchem LCD nur noch schwarze Kästchen, selbst wenn da 
Text drauf steht.

von Uwe N. (ex-aetzer)


Lesenswert?

@ Karl heinz Buchegger,

> 'Voller Kontrast' ist ein Begriff für Benutzerweicheier.

genau, und

> ... Schraubenzieher ...

aber auch ! ;)

Diesen "Begriff" konnte mein ehemaliger Fachlehrer einfach nicht leiden:
"Das heisst SCHRAUBENDREHER !"

Sorry für diesen OT !

Gruss Uwe

von Patrick R. (pat711)


Lesenswert?

Schraubenzieher mag mein meister au nich ^^ xD

naja aber ich lern ja au nix mechanisches ^^

ich hab den fehler wies scheint nu gefunden...
Pollin hat wies scheint nen fehler am PORTB in dem Board oder meine 
Verbindungsflachbandleitung hat nen fehler...

werde mir nun mal ne alternative überlegen oder nen adapter fürs STK 500 
baun...

thx mal an alle die mir geholfen haben, wenns dann immer noch nicht geht 
werd ich mich melden.

von Patrick R. (pat711)


Lesenswert?

OK, vielen Dank nochmal.
Hier hab ich noch die Auflösung des Rätsels:

Dies ist vor allem für alle die interessant, die mit einem "Atmel 
Evaluationboard Ver. 2.01" mit einem "ADDON-BOARD Ver.1.0" verwenden.

Die Pinbelegung des PORTD ist richtig angeordnet, bei PORTB sieght es 
allerdings folgendermaßen aus:

Pollin Bezeichnung       verbundener Pin
       1                       -
       2                       -
       3                      PB0
       4                      PB1
       5                      PB2
       6                      PB3
       7                      PB4
       8                      PB5
       -                      PB6
       -                      PB7

!Achtung! Dies gilt nur bei dem 28 - poligen Sockel!!!
Bei den anderen PORTS habe ichs noch nicht durchprobiert.
Bei den teilen mit dem - hab ich nicht nachgeschut / nichts gefunden. Im 
schaltplan sind die Verbindungen übrigens auch nicht vorhanden.

MfG, Pat

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.