Forum: Mikrocontroller und Digitale Elektronik ANAG VISION AV1610 am RaspberryPi


von Kelevra (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen, ich habe mir letztens ein ANAG VISION AV1610 LCD Display 
mit KS0066 Driver geordert, welches heute auch angekommen ist. Vorweg 
muss ich dazu sagen, dass das mein erstes LCD ist und ich brandneu im 
bereich der LCD ansteuerung bin. Ich habe mir einige Tutorials 
angesehen, wie ich das LCD mit dem RaspberryPi verbinde und habe mir das 
auch auf einem Breadboard zusammengesteckt. Siehe Anhang.

Dort ist aber auch gleich mein Problem zu erkennen. Ich kann nur die 
erste Hälfte des Displays ansteuern und das noch nichtmal ordentlich. 
Als Programmierumgebung benutze ich wiringPi mit der darin enthaltenen 
lcd.h
1
#include <wiringPi.h>           //WiringPi headers
2
#include <lcd.h>                //LCD headers from WiringPi
3
#include <stdio.h>              //Needed for the printf function below
4
5
//Pin numbers below are the WiringPi pin numbers
6
7
#define LCD_RS  11               //Register select pin
8
#define LCD_E   10               //Enable Pin
9
#define LCD_D4  6                //Data pin 4
10
#define LCD_D5  5                //Data pin 5
11
#define LCD_D6  4                //Data pin 6
12
#define LCD_D7  1                //Data pin 7
13
14
int main()
15
{
16
    int lcd;                //Handle for LCD
17
    wiringPiSetup();        //Initialise WiringPi
18
19
    //Initialise LCD(int rows, int cols, int bits, int rs, int enable, int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7)
20
    if (lcd = lcdInit (1, 16,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5, LCD_D6,LCD_D7,0,0,0,0)){
21
            printf ("lcdInit failed! \n");
22
            return -1 ;
23
    }
24
25
    lcdPosition(lcd,0,0);           //Position cursor on the first line in the first column
26
    lcdPuts(lcd, "Character LCD");  //Print the text on the LCD at the current cursor postion
27
    getchar();                      //Wait for key press
28
    lcdClear(lcd);                  //Clear the display
29
}

Wäre nett, wenn man mir unter die Arme greifen könnte wie ich das 
Display richtig initialisiere. Ich habe das Datenblatt vom KS0066 sowie 
vom AV1610 schon angesehen, bin daraus aber auch nicht wirklich schlauer 
geworden. Mit Adresszuweisung u.ä. habe ich mich bis dato noch nie 
beschäftigt, bin aber nicht abgeneigt es zu lernen.

Vielen Dank schonmal im Vorraus für eure Hilfe :)
Grüße.

von John (Gast)


Lesenswert?


von John (Gast)


Angehängte Dateien:

Lesenswert?

Siehe auch Datenblatt

von holger (Gast)


Lesenswert?

>Siehe auch Datenblatt

Oder so weil er das vermutlich nicht so leicht versteht:

lcdPosition(lcd,0,0);           //Position cursor on the first line in 
lcdPuts(lcd, "Characte");  //Print the text on the LCD at the

lcdPosition(lcd,1,0);           //Position cursor on the first line in 
lcdPuts(lcd, "r LCD");  //Print the text on the LCD at the

Eigentlich ist das ein 2x8 Display wo die beiden Zeilen
nebeneinander und nicht übereinander liegen.

von holger (Gast)


Lesenswert?

Das hier

>    if (lcd = lcdInit (1, 16,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5,

sollte dann auch besser so aussehen:

    if (lcd = lcdInit (2, 8,4, LCD_RS, LCD_E ,LCD_D4 , LCD_D5,

von Kelevra (Gast)


Lesenswert?

Schonmal danke an euch beiden. Leider hat es nicht funktioniert mit dem 
2x8 Zeilen Init. Es erscheint auch kein Text mehr sondern die linke 
Seite des LCDs wird mit Kästchen gefüllt.

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.