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
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.
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 | }
|
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?
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 ^^.
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)
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.
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.
@ 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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.