Ich bin grade am basteln mit einem LCD in nem Projekt und nach einigen
Stunden Ärger und hin&her hab ichs jetzt laufen.
Die Ursache war, dass in der LCD-Lib von P.Fleury (quasi das
Standard-werk ^^) eine kleine Unsauberkeit drinnen war.
Die lcd_init sah bei zeile (ind lcd.c) ~540 (hab vorher schon bischen
rumgeschoben deswegen so unpräzise) so aus:
1 | LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN); // LCD_FUNCTION>>4;
|
2 | LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN); // LCD_FUNCTION_8BIT>>4;
|
Wie man sieht werden die beiden höheren Bits (2 und 3) mit 0 angenommen.
Bei mir waren die das aber (aus ungeklärter Ursache ?) nicht.
Mit einer minimalen Verbesserung:
1 | LCD_DATA3_PORT &= ~_BV(LCD_DATA3_PIN);
|
2 | LCD_DATA2_PORT &= ~_BV(LCD_DATA2_PIN);
|
3 | LCD_DATA1_PORT |= _BV(LCD_DATA1_PIN); // LCD_FUNCTION>>4;
|
4 | LCD_DATA0_PORT |= _BV(LCD_DATA0_PIN); // LCD_FUNCTION_8BIT>>4;
|
Läuft jetzt mein Disp (vorher war nur die typische helle erste Zeile zu
sehen).
Ich schreib das aus 2 Gründen:
1. Um anderen Leuten mit dem gleichen Problem zu helfen
2. Um euch zu fragen: Lohnt es sich an den Autor mit diesem Ding
heranzutreten? Oder hatte ich mit meinem Setup einfach nur massiv Pech ?
Grüße,
Max
€dit: typos