Nochmal Hilfe zum DOGXL

Gast #2466411
Lesenswert?

Hallo, ich brauche hilfe zum betreiben des Displays DOGXL. Ich will ihn 
mit einem Atmega8 im 3-wire 8-bit SPI Modus betreiben. Die Verschaltung 
ist wie laut Datenblatt. Einzige änderungen 1uF Kondensator zw. pin 19 
und 20 bzw 18 und 21. An VLCD habe ich einen 0,1 uF an Masse. Auf die 
Polung bei den elkos habe ich geachtet. Reset (Pin 29) liegt auf masse. 
Pin 27 geht an PB2, 31 an PB3 und 32 an PB5. Die Pegelwandlung habeich 
über Spannungsteiler gemacht.
Es tut sich allerings gar nicht am Display.

Ich bin für jede Hilfe dankbar..

So sieht mein Code aus



#define F_CPU 1000000UL                        /ontroller Taktfrequenz

#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>

//DOGXL160 Initialisierungsbefehle

#define Set_Com_End_H                 0xF1
#define Set_Com_End_L                 0x67
#define Set_LCD_Mapping_Control       0xC6
#define Set_Scroll_Line_LSB           0x40
#define Set_Scroll_Line_MSB           0x50
#define Set_Panel_Loading             0x2B
#define Set_Pump_Controll             0x2F
#define Set_LCD_Bias_Ratio            0xEB
#define Set_Vbias_Potentiometer_H     0x81
#define Set_Vbias_Potentiometer_L     0x5F
#define Set_RAM_Address_Control       0x89
#define Set_Display_Enable            0xAF

//DOGXL160 weitere Befehl

#define Set_All_Pixels_On             0xA5
#define Set_Inverse_Display           0xA6
#define System_Reset                  0xE2
#define Page_Address                  0x60
#define Column_LSB0                   0x00
#define Column_MSB0                   0x10




void SPI_Master_Init(void)                        //ISP Initialisierungs 
Funktion
{
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}


void SPI_Senden(char cData)                        //SPI Senden Funktion
{
  SPDR = cData;
  while(!(SPSR & (1<<SPIF)));
}

void waitus(void)                        //warten fkt
{
  _delay_us(10);
}

//DOGXL160

void DOGXL160_Init(void)
{
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Com_End_H);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Com_End_L);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_LCD_Mapping_Control);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Scroll_Line_LSB);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Scroll_Line_MSB);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Panel_Loading);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Pump_Controll);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_LCD_Bias_Ratio);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Vbias_Potentiometer_H);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Vbias_Potentiometer_L);
  PORTB |= (1<<PB2);
  waitus();
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_RAM_Address_Control);
  PORTB |= (1<<PB2);
  waitus();;
  PORTB &= ~(1<<PB2);
  SPI_Senden(Set_Display_Enable);
  PORTB |= (1<<PB2);
}





int main (void)                              //Hauptprogramm
{
  //Variablen, Arrays


  //Initialisierungen

  _delay_ms(500);


  /* Set MOSI and SCK output, all others input */
DDRB = 0b00001100;


  SPI_Master_Init();                          //SPI initialisieren
  PORTB |= (1<<PB2);                          //CD --> high (Data)

  _delay_us(10);
  PORTB &= ~(1<<PB2);                          //CD --> low (Command)
  SPI_Senden(System_Reset);
  PORTB |= (1<<PB2);                          //CD --> high (Data)
  _delay_us(10);

  DOGXL160_Init();                          //Display initialisieren


  _delay_ms(10);

  PORTB &= ~(1<<PB2);                          //CD --> low (Command)
  SPI_Senden(0x6C);                          //Page Address = 12
  PORTB |= (1<<PB2);                          //CD --> high (Data)
  _delay_us(10);
  PORTB &= ~(1<<PB2);                          //CD --> low (Command)
  SPI_Senden(0x15);                          //Column Address = 80
  PORTB |= (1<<PB2);                          //CD --> high (Data)
  _delay_us(10);
  PORTB &= ~(1<<PB2);                          //CD --> low (Command)
  _delay_us(10);
  PORTB |= (1<<PB2);                          //CD --> high (Data)
  SPI_Senden(0b00011011);                        //Testbild vier Pixel 
in der Displaymitte
  PORTB &= ~(1<<PB2);                          //CD --> low (Command)

  //Hauptschleife

  while(1)
  {                          //test ob uC läuft

DDRC  = 0xff;  //AUSGANG



PORTC=0b11111111  ;  //LED

  }

  return 0;

}
Gast #2466440
Lesenswert?

>So sieht mein Code aus
>
>#define F_CPU 1000000UL                        /ontroller Taktfrequenz

Daraus macht der Compiler sicher nur eine Fehlermeldung.

>  /* Set MOSI and SCK output, all others input */
>DDRB = 0b00001100;

Netter Kommentar, nur wird SCK nicht zum Ausgang.
Gast #2468095
Lesenswert?

@Holger: hast recht hab die zeile abgeändert in DDRB = 0b00101000;
das /controller stand so nicht im quelltext, der fehler ht sich beim 
schreiben des threads eingeschlichen.

@spess: die elkos zw. pin 19 und 20 bzw. 18 und 21, sowie an VLCD.
Die spannung von 10 Volt kann ich nicht messen.

Wobei ich jetzt sagen muss das die LED mit abgeänderten Zeile "DDRB = 
0b00101000;" nun nicht mehr angeht.

Das heißt wohl es wird nicht initialisiert?!
Gast #2468161
Lesenswert?

Hi

>bist du sicher,das es mit elkos nicht geht? zumindest hab ich gelesen
>das hier einige elkos benutzen.

Das ist zumindest die Aussage von EA und meine eigene Erfahrung.

Was sagst du zum code. sollte das passen?

Ich bin notorischer Assemblerprogrammierer. Allerdings macht mich dieser 
Kommentar stutzig:

> /* Set MOSI and SCK output, all others input */

Lies dir mal das Kapitel 'SS Pin Functionality' im Datenblatt durch.

MfG Spess
Gast #2470366
Lesenswert?

Wir hatten vor einiger Zeit mal ein DOGXL160 Shield für den Arduino 
entwickelt. Vielleicht hilft der Schaltplan weiter:

http://code.google.com/p/dogm128/wiki/dogxl160

Dort gibt es auch eine Graphic-Lib zum Runterladen (auch für nicht 
Arduino), die den DOGXL160 unterstützt. Die Lib enthält sowohl HW als 
auch SW SPI (soweit ich mich erinnere), was das Problem mit dem 
Slave-Select-Pin etwas entschäfen könnte.

Grüße,
Oliver
Gast #2475388
Lesenswert?

@spess: also im Datenblatt steht das SS als input festgelegt werden 
soll. Wenn ich das mache geht die LED nach der Initialisierung nicht an. 
Ich vermute das Programm bleibt irgendwo hängen. Hast du eventuell die 
Initialisierung als asm code. Damit könnte ich zumindest testen ob es 
überhaupt geht.

@oliver: danke für den tip aber ich möchte es erstmal per hand machen.
Gast #2475496
Lesenswert?

>@spess: also im Datenblatt steht das SS als input festgelegt werden
>soll. Wenn ich das mache geht die LED nach der Initialisierung nicht an.

Genau das Gegenteil ist der Fall. SS muss ein Ausgang sein.
Oder wenigstens ein Eingang mit Pullup, den du nicht als
Eingang verwenden darfst!
Gast #2475499
Lesenswert?

Hi

>@spess: also im Datenblatt steht das SS als input festgelegt werden
>soll.

Da steht auf S.125:

'If SS is configured as an output, the pin is a general output pin which 
does not affect the SPI system. Typically, the pin will be driving the 
SS
pin of the SPI Slave.'

Wenn du /SS als Eingang konfigurierst muss es auf H bleiben. Bei L an 
/SS schaltet das SPI in den Slave-Mode.

>Hast du eventuell die Initialisierung als asm code. Damit könnte ich >zumindest 
testen ob es überhaupt geht.

Das DOGXL habe ich vor längerer Zeit nur mal kurz getestet. Also noch 
keine richtige Lib erstellt. Die Initialisierung von SPI und LCD habe 
ich dir mal in den Anhang kopiert.

Ein Beispiel für die Initialisierung in C findest du auch bei EA:
http://www.lcd-module.de/support.html

MfG Spess
Angehängte Dateien:
Gast #2476236
Lesenswert?

habe jetzt den elko an VLCD durch einen aus keramik ersetzt und den 10M 
Widerstand hinzugefügt der nach neuerem datenblatt hinzugefügt werden 
soll. Auch nach vielem vielem probieren bekomme ich den doxl nicht zum 
laufen.
Keine spannung an VLCD. Werde es jetzt morgen mal mit dem tip von oliver 
probieren. hab langsam das gefühl, das der display kaputt ist. naja mal 
schauen...
Gast #2477077
Lesenswert?

So ich habe jetzt nochmal den C quelltext auf das allernotwendigste 
runtergebrochen um eventuell fehler auszuschließen. ich bin mir fast 
sicher das der code richtig ist. Nochmal zum display: durch ändereung 
des pegels an PB2 wird wird der Bitzähler des displays zurückgesetzt, 
der pegel muss während der übertragung unverändert bleiben >> ist 
gewährleistet.

Dann werden 8 Bits übertragen mit MSB zuerst >> ist gewährleistet.

SCK max. 8 Mhz (der atmega läuft mit internem 1 Mhz) >> gewährleistet

Hat jemand noch eine ideeoder findet jemand einen fehler??

Hier nochmal der Code:



#define F_CPU 1000000UL                        //Controller Taktfrequenz

#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>



#define Set_Com_End_H                 0xF1
#define Set_Com_End_L                 0x67
#define Set_LCD_Mapping_Control       0xC0
#define Set_Scroll_Line_LSB           0x40
#define Set_Scroll_Line_MSB           0x50
#define Set_Panel_Loading             0x2B
#define Set_LCD_Bias_Ratio            0xEB
#define Set_Vbias_Potentiometer_H     0x81
#define Set_Vbias_Potentiometer_L     0x5F
#define Set_RAM_Address_Control       0x89
#define Set_Display_Enable            0xAF


#define System_Reset                  0xE2




void waitus(void)                        //warten Fkt
{
  _delay_us(10);
}

void SPI_Master_Init(void)                        //ISP Initialisierungs 
Funktion
{

SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<CPOL)|(1<<CPHA);

}


void SPI_Senden(unsigned char cData)                        //SPI Senden 
Funktion
{
  PORTB &= ~(1<<PB2);      //LOW
  SPDR = cData;
  while(!(SPSR & (1<<SPIF)));
  PORTB |= (1<<PB2);      //HIGH
}




void DOGXL160_Init(void)
{

  SPI_Senden(Set_Com_End_H);

  waitus();

  SPI_Senden(Set_Com_End_L);

  waitus();

  SPI_Senden(Set_LCD_Mapping_Control);

  waitus();

  SPI_Senden(Set_Scroll_Line_LSB);

  waitus();

  SPI_Senden(Set_Scroll_Line_MSB);

  waitus();

  SPI_Senden(Set_Panel_Loading);


  waitus();

  SPI_Senden(Set_LCD_Bias_Ratio);

  waitus();

  SPI_Senden(Set_Vbias_Potentiometer_H);

  waitus();

  SPI_Senden(Set_Vbias_Potentiometer_L);

  waitus();

  SPI_Senden(Set_RAM_Address_Control);

  waitus();

  SPI_Senden(Set_Display_Enable);

}


//Hauptprogramm

int main (void)
{


  _delay_ms(500);

  DDRB = 0b00101100;
                          //PB3 --> SCK, PB2 --> CD, PB5 --> MOSI



  SPI_Master_Init();                          //SPI initialisieren

  PORTB |= (1<<PB2);                          //CD --> high (Data)

  waitus();
                            //CD --> low (Command)
  SPI_Senden(System_Reset);
                            //CD --> high (Data)
  waitus();

  DOGXL160_Init();                          //Display initialisieren


  //Hauptschleife

  while(1)
  {

  DDRC  = 0xff;  //AUSGANG
    PORTC=0b11111111;  //LED

  }

  return 0;

}
#2477546
Lesenswert?

Ich betreibe das DOGXL im 4wire-Mode;
sollte eigentlich (wenn's richtig umgesetzt ist) egal sein.
Straff mal Deine Initialisierung, die meisten Parameter werden eh per 
default gesetzt.
Bei mir sieht's so aus.
1
void Init_DOGXL(void){
2

3
volatile uint8_t i;
4

5
  INIT_DOGXL_PINS;           // CMD u. RST  für's LCD setzen.
6
  for(i=200; i>0; i--){;};   // delay a little bit...
7
  DOGXL_RELEASE_RST;         // ...
8
  Set_Vbias_Pot(0x9C);       // VBIAS Cmd & Value(hier 0x9C !!!)
9
  Clear_Screen();            // RAM mit 0x00 beschreiben
10
  Send_Display_Cmd(DISPLAY_ENABLE);
11
}

Mann erkennt dann flächig einen Hauch von Pixel.
Wie sieht denn Dein Display nach der INIT aus?

Gruß Holger Sch

ps:
Deine:
waitus();
kannste vergessen!
Gast #2477574
Lesenswert?

Das ganze ist jetzt so übersichtlich das man es gut nachvollziehen kann:



#define F_CPU 1000000UL                        //Controller Taktfrequenz

#include <avr/io.h>
#include <stdint.h>
#include <util/delay.h>



#define Set_Com_End_H                 0xF1
#define Set_Com_End_L                 0x67
#define Set_LCD_Mapping_Control       0xC0
#define Set_Scroll_Line_LSB           0x40
#define Set_Scroll_Line_MSB           0x50
#define Set_Panel_Loading             0x2B
#define Set_LCD_Bias_Ratio            0xEB
#define Set_Vbias_Potentiometer_H     0x81
#define Set_Vbias_Potentiometer_L     0x5F
#define Set_RAM_Address_Control       0x89
#define Set_Display_Enable            0xAF


#define System_Reset                  0xE2




void waitus(void)                        //warten Fkt
{
  _delay_us(10);
}

void SPI_Master_Init(void)                        //ISP Initialisierungs 
Funktion
{

SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(1<<CPOL)|(1<<CPHA);

}


void SPI_Senden(char cData)                        //SPI Senden Funktion
{

  PORTB &= ~(1<<PB2);      //LOW = command (High=data)

  waitus();

  SPDR = cData;
  while(!(SPSR & (1<<SPIF)));

  waitus();

  PORTB |= (1<<PB2);      //HIGH

  waitus();


}




void DOGXL160_Init(void)
{

  SPI_Senden(Set_Com_End_H);

  SPI_Senden(Set_Com_End_L);

  SPI_Senden(Set_LCD_Mapping_Control);

  SPI_Senden(Set_Scroll_Line_LSB);

  SPI_Senden(Set_Scroll_Line_MSB);

  SPI_Senden(Set_Panel_Loading);

  SPI_Senden(Set_LCD_Bias_Ratio);

  SPI_Senden(Set_Vbias_Potentiometer_H);

  SPI_Senden(Set_Vbias_Potentiometer_L);

  SPI_Senden(Set_RAM_Address_Control);

  SPI_Senden(Set_Display_Enable);

}


//Hauptprogramm

int main (void)
{


  _delay_ms(10);

  DDRB = 0b00101100;   //PB3 --> SCK, PB2 --> CD, PB5 --> MOSI (alle 
Ausgang)




  SPI_Master_Init();                          //SPI initialisieren


  SPI_Senden(System_Reset);

  _delay_ms(10);

  DOGXL160_Init();                          //Display initialisieren


  //Hauptschleife

  while(1)

  {

  DDRC  = 0xff;  //AUSGANG
    PORTC=0b10111111;  //LED

  }

  return 0;

}

Muss ich vielleicht MOSI oder SCK noch auf high ziehen?
#2477654
Lesenswert?

ok, mit dem Befehl "Display_Enable" müsste sich eigentlich Vlcd 
einstellen.
>Muss ich vielleicht MOSI oder SCK noch auf high ziehen?
Nein, Deine SPI-Initialisierung sollte richtig sein und die 
entsprechenden Zustände nach einem Datentransfer herstellen.
Initialisiere nur mal "Vbias-pot", nix anderes, und spiele mit dem 
Parameter rum.
Du initialisierst mit 0x5F, ich(FSTN pos. transflective) mit 0x9C.
Wenn's nix bring, klekker mal die Hardware zu Papier;
so wie'se ist, nicht so wie Du denkst.

Gruß Holger Sch
Gast #2477677
Lesenswert?

Nur vbias potentiometer zu intiliasieren bringt keine änderung. die 
schaltung ist wirklich wie nach datenblatt (ausnahme reset auf VDD).
Werde dann morgen mal nen schaltplan basteln...

PB2 schaltet auch den CD, habs nachgemessen. die spannungsteiler bringen 
auch schöne 3V an den dogxl.
SCK und MOSI sind ja dann zwangsläufig durch die SPI init 
funktionstüchtig.
Gast #2478207
Lesenswert?

So das Dislay funktiniert!!! Es ist mir fast ein bischen peinlich aber 
als ich heute den schaltplan erstellt habe ist mir aufgefallen das SCK 
und SDA vertauscht sind...ggrrrr

Jetzt habe ich 13,6 V an VLCD und überall auf dem display verteilt PIXEL 
(normal)????

Für alle die den dogxl mit einem atmega8 betreiben wollen, stelle ich 
mal hier den Schalplan und Quelltext mit rein.....
Angehängte Dateien:
Gast #2478243
Lesenswert?

Hi

>...habe ist mir aufgefallen das SCK und SDA vertauscht sind...ggrrrr

Stimmt, das führt manchmal zu einem Fehlverhalten.

>Für alle die den dogxl mit einem atmega8 betreiben wollen, stelle ich
>mal hier den Schalplan und Quelltext mit rein.....

Der ATMega8 bei einem solchen Display etwas schwach auf der Brust. Ein 
Bild in der Displaygröße hat schon über 4K. Einen oder mehrere Fonts 
möchtest du vielleicht auch.
Übrigens kann das Display, im Gegensatz zu der Datenblattangabe, auch 
Grautöne. EA hat das, lt. eigener Aussage, aus Kontrastgründen nur als 
SW-Display beworben.

MfG Spess
#2478254
Lesenswert?

Hallo Felix,

na, hat dann ja doch geklappt.

> und überall auf dem display verteilt PIXEL
> (normal)????

Das Display-RAM ist undefiniert, wenn Du alles mal mit 0x00 beschreibst 
erhälst Du eine gleichmäßige Fläche. Dann noch mit den Displayparametern 
rumspielen und gut isses.
Wenn Du dann mit der Frequenz hochgehen solltest währe es angebracht, 
die Spannungsteiler für's DOGXL um den Faktor 10 zu verkleinern.

Gruß Holger Sch
Gast #2478329
Lesenswert?

also wenn ich alles mit 0 beschreibe bekomme ich einen fast schwarzen 
display. wenn man genau hinguckt sieht man aber vertikale streifen.
ich schreibe die 0 mit der schleife:
for(p=0; p < 26; p++)                     //  26  Pages
  {
    for(c=0; c < 160; c++)                  // 160 Columns
    {
    //  SPI_Senden(0x00 + p);
    //  SPI_Senden(0x00 + c);
    //  SPI_Pixel(0b00000000);
    }
  }
Gast #2478365
Lesenswert?

jetzt gehts. Man sollte in c die variablen deklarieren. sonst fängt die 
schleife irgendwo an :)
genau, da ich ein negatives habe kann ich den display mit FF leer 
machen. Wenn ich alles mit 00 beschreibe wird der display ganz kurz 
hell, dann aber sofort wieder dunkel. kann der dogxl das nicht ab?
Gast #2478442
Lesenswert?

also ich habe jetzt mal ein bischen rumprobiert.
aber ich verstehe die Adresszuweisung von Page und Column nicht.

Im Datenblatt steht z.b "set page adress 011 PA(4-0) mit PA=0-25

Soll ich dann mit den ersten 5 Bit eine Zahl zwischen 0 und 25 
darstellen??
Gast #2478453
Lesenswert?

Hi

>Soll ich dann mit den ersten 5 Bit eine Zahl zwischen 0 und 25
>darstellen??

Die oberen 3 Bit (011) spezifizieren den Befehl 'Set Page Adress' und 
die unteren 5 Bit die Pagenummer.

>Im Datenblatt steht z.b "set page adress 011 PA(4-0) mit PA=0-25

Du meinst hoffentlich das Datenblatt vom Displaycontroller (UC1610).

MfG Spess
Gast #2478489
Lesenswert?

ah ok das habe ich verstanden. also die pixel kann ich jetzt schon 
relativ gut und gekonnt setzen. das einzige Problem was ich jetzt noch 
habe ist das wenn ich den display komplett dunkel mache mit:
for(p=0; p < 26; p++)                     //  26  Pages */
  {
    for(c=0; c < 160; c++)                  // 160 Columns */
    {
      SPI_Senden(0x00 + p);
      SPI_Senden(0x00 + c);
      SPI_Pixel(0b00000000);
    }
  }
Dann kann ich die pixel nicht mehr ansteuern.
Wenn ich hingegen den Pixelsalat vom start beibehalte und dort drin 
rumwurschtel geht alles.
Gast #2478644
Lesenswert?

Hi

>Dann kann ich die pixel nicht mehr ansteuern.
>Wenn ich hingegen den Pixelsalat vom start beibehalte und dort drin
>rumwurschtel geht alles.

Du kannst kein einzelnes Pixel ansteuern. Um ein Byte (4 Pixel) gezielt 
zu Beschreiben gehst du wie folgt vor:

Kommando Page setzen
Kommando Low(Spalte) setzen
Kommando High(Spalte) setzen
Datenbyte setzen

MfG Spess
Gast #2478744
Lesenswert?

Hi

>was meinst du mit Low spalte bzw high spalt? den cs zieh ich bei
>Kommandos für die Übertragung immer nach low.

Mal angenommen du willst in Page5 das Byte 53 adressieren dann sendest 
du

1. Kommando 0b01100101 = 0b01100000 (Set Page Adress) + 0b00000101 (5)

2. Die Spalte in 2 Befehlen. Einmal für das untere Nibble und dann für
   das obere Nibble.

   53 = 0b00110101
          |  ||__|__Unteres Nibble
          |__|______Oberes Nibble

Daraus ergeben sich die beiden Befehle:

     0b00000101 = 0b00000000 (Set Column Address LSB) + 0b00000101
     0B00010011 = 0b00010000 (Set Column Address MSB) + 0b00000011

MfG Spess
Gast #2478782
Lesenswert?

ok Ich habe es bis jetzt wie folgt gemacht.
1. Page senden: 0b01100000
2. column senden: 0b00000000
damit wäre die Position ganz oben links am Display.
3. Daten für Pixel senden womit ich dann bestimmen kann welche der 4 
Pixel an oder aus sind.

war das so komplett falsch? es hat zumindest meist funktioniert.
Gast #2478823
Lesenswert?

Hi

>war das so komplett falsch?

Nicht komplett.

>2. column senden: 0b00000000
>damit wäre die Position ganz oben links am Display.

Aber was ist so schwer zu verstehen, das die Column Adresse nicht in 
einem Stück gesendet wird? Dein Befehl setzt die Colunm Adresse auf 
einen Wert 0bxxxx0000.

Tu dir bitte einen Gefallen und lies das Datenblatt vom 
Displaycontroller. Mit dem Datenblatt vom Display kommst du in Puncto 
Programmierung nicht weit. Die Befehlsliste ist unvollständig und nicht 
erläutert. Und mit deinem
Trial&Error-Dediller wirst du nicht weit kommen.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren