Hallo liebe Gemeinde (: ich möchte gerne ein Display Initalisieren. Doch leider haut das nicht hin :( Mit Bascom funktioniert das wunderbar... ich habe mal .rar Datei mit den Daten gemacht... kann mir jemand helfen ? 16 * 2 Zeichen... Winstar : MSH 1602... in C
Die Fleury Datei funktioniert sehr gut. Im Gegensatz zu BASCOM muss R/W auch angeschlossen werden, nicht auf GND.
das ist aber auf der Platine so hinterlegt... das muss doch auch so gehen ?!
Franzi schrieb: > das ist aber auf der Platine so hinterlegt... das muss doch auch so > gehen ?! Ja, wenn du selber programmieren kannst und den Code änderst dann geht es. Wenn du das nicht kannst geht es halt nicht.
Das ist eine geänderte Datei. In der lcd_new.h sind deine Einstellungen zu machen.
Bei mir geht es mit R/W auf GND, wenn du in der *.h die entsprechende Einstellung machst.
In dieser Zeile: #define LCD_READ_REQUIRED 1 /* 1: R/W aktiv, 0: R/W nicht aktiv, anstelle der 1 eine 0. Weiter unten dann die Porteinstellung.
Gestern, als Du noch "Robert" hießt: Beitrag "LCD Programmieren" habe ich schon gefragt, warum Du nicht bei Bascom bleibst, wenn das tadellos funktioniert. ;-) MfG Paul
Hubert G. schrieb: > In dieser Zeile: > #define LCD_READ_REQUIRED 1 /* 1: R/W aktiv, 0: R/W nicht aktiv, > > anstelle der 1 eine 0. > Weiter unten dann die Porteinstellung. leider klappt das nicht... ich verstehe es einfach nicht :(
da müsste doch normaler weise... wenn alles i.o ist ein H auf dem Display stehen oder ? #include <avr/io.h> #include <util/delay.h> int main(void) { lcd_init(); while(1) { lcd_data('H'); } }
da müsste doch normaler weise... wenn alles i.o ist ein H auf dem Display stehen oder ? #include <avr/io.h> #include <util/delay.h> #include "lcd_new.h" int main(void) { lcd_init(); while(1) { lcd_data('H'); } }
Wenn es nicht initialisiert ist, dann ist in der ersten Zeile ein schwarzer Balken. Nach der Initialisierung verschwindet dieser Balken und in der ersten Zeile sollte dein H auftauchen. Kontrast richtig eingestellt?
ja habe ich ! wie gesagt mit einem anderen Programm funktioniert es doch :( ich verstehe es nicht! wenn es bei dir auch geht ?
Verstehe ich auch nicht. Die lcd_new.c und lcd_new.h eingebunden und im main richtig angegeben?
Bei Peter steht da aber : void lcd_init (uint8_t dispAttr) Initialize display and select type of cursor. Parameters: dispAttr LCD_DISP_OFF display off LCD_DISP_ON display on, cursor off LCD_DISP_ON_CURSOR display on, cursor on LCD_DISP_ON_CURSOR_BLINK display on, cursor on flashing Returns: none Probiere es doch mal mit lcd_init(LCD_DISP_ON);
habe ich ja auch schon versucht... bringt auch nichts... muss ich in meinem Hauptprogramm unbedingt die Frequenz angeben?
Ja mit deiner Belegung, wie im BASCOM-Bild. Allerdings mit 8MHz Takt. Wenn du sonst keinen Takt angegeben hast, dann nimmt er den von der *.h Datei. Da ist 4MHz drinnen. Wenn du dann 16MHz hast, gibt es ein Timigproblem.
:
Bearbeitet durch User
ich habe nun den internen RC auf 8 MHZ gestellt! geht immer noch nichts...
Irgendwas ist bei dir noch falsch. Ich habe natürlich nicht dein Display. In der lcd_new.h gibt es noch den Punkt am Anfang: #define LCD_CONTROLLER_KS0073 1 /**< Use 0 for HD44780 controller, 1 for KS0073 controller */ Schreib wie hier die 1 hinein, die Initialisierung ist hier geringfügig anders. Mach mal ein Bild von deinem Board und zeig die Schaltung.
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.