mikrocontroller.net

Forum: Compiler & IDEs LCD Probleme mit ST7036


Autor: Stefan Siedler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein atmega16 nach Anweisung von Fleury angeschlossen und
benutze die mitgegebene Library. Ich will damit ein ST7036 (4bit,
2-lines) ansprechen Ich habe entsprechend den Anweisungen
initialisiert, also

#define XTAL 4000000
#define LCD_LINES           2
#define LCD_DISP_LENGTH    16
#define LCD_LINE_LENGTH  0x40
#define LCD_START_LINE1  0x00
#define LCD_START_LINE2  0x40
#define LCD_WRAP_LINES      0


#define LCD_IO_MODE      1
#if LCD_IO_MODE
#define LCD_PORT         PORTB        /**< port for the LCD lines   */
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN    0            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    1            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    2            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    3            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       4            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       5            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#define LCD_E_PIN        6            /**< pin  for Enable line     */
 eingetragen und will das mitgelieferte 'test_lcd' benutzen aber
leider passiert nichts. Hat irgendjemand schon mal dieses Display
benutzt und eine Idee woran es liegen könnte?

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bist Du weiter gekommen?

ich habe nun das selbe Problem.

Nach dem Programmieren steht zwar was auf dem LCD, aber nach einem
Reset ist alles weg.

Gruß Toby

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Nochmal,

da es ein etwas anderer controler ist, muß man diesen Wohl anders
initialisieren.
Im Datenblatt steht zB. zur 4 Bit Mode Initialisierung folgendes :

Power On

Wait some Time >40ms

Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   1   1   0   0   0   0

Wait some Time >1,6ms

Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   1   1   X   X   X   X

Wait some Time >26,3us

Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   1   1   X   X   X   X

Wait some Time >26,3us

Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   1   0   X   X   X   X

Wait some Time >26,3us

Function set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0  0   1   0   X   X   X   X
 0  0  N  DH  IS2 IS1 X   X   X   X

Wait some Time >26,3us

Internal OSC frequenzy
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   0   1   X   X   X   X
 0  0  BS  F2  F1  F0  X   X   X   X

Wait some Time >26,3us

Contrast Set
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   1   1   1   X   X   X   X
 0  0  C3  C2  C1  C0  X   X   X   X

Wait some Time >26,3us

Power/ICON/Contras Control
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   1   0   1   X   X   X   X
 0  0 Ion Bon  C5  C4  X   X   X   X

Wait some Time >26,3us

Follower control
RS RW DB7 DB6  DB5  DB4 DB3 DB2 DB1 DB0
 0  0  0   1    1    0   X   X   X   X
 0  0 Fon Rab2 Rab1 Rab0 X   X   X   X

Wait some Time >26,3us

Display On/Off Control
RS RW DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
 0  0  0   0   0   0   X   X   X   X
 0  0  1   D   C   B   X   X   X   X

So, das soll die Initialisierung sein.

Und was bitte ist mit dem E (Enable) Pin wären der Zeit,
wo ich die Daten sende, und warte?

Vielleicht kann mir jemand sagen, wie ich die Radig oder Fleury Lib
umschreiben muß?!

Bei der Fleury Lib kann man wenigstens die Pins frei wählen.
Bei Radig ist das schon etwas schwerer, denke ich.

Ich habe folgende Pin Belegung :
PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
DB7 DB6 DB5 DB4 ---  E  R/W RS

Und ich programmiere mit Win AVR.

Gruß Toby

Autor: Stefan Siedler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Leidensgenosse. Ich bin dazu übergeggangen mir meine eigene Lib zu
schreiben, da ich mit der Fleury-Lib das Display auch nicht zum Laufen
kriege. Leider bin ich noch nicht fertig. Trotzdem versuche ich mal dir
Antwort zu geben.

Die Enable Leitung muss bevor man etwas an die Datenregister schickt
auf high gesetzt werden and nach dem Setzen der Datenregister wieder
zurück auf low. Erst durch das Setzen von high-low werden die Daten
übernommen. Das Ganze ist nicht explizit beschrieben sondern nur durch
eine Grafik im Datenblatt  dokumentiert. Leider habe ich das jetzt
nicht zur Hand um dir ganz genau die Seite zu sagen. Wichtig ist, dass
die Datenleitung für jedes Nibble auf high-low gesetzt werden muss.
Das Ganze schreibt dir ein noch blinder, der hofft dass er bis Ende der
Woche ein funktionierendes Display hat.

Autor: Stefan Sczekalla (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn der Kontroller HD44780 Kompatibel ist klappt das gaaaanz
bestimmt mit der Fleury Lib - die hab ich erst vergangene Woche
benutzt.

Grüße,

Stefan

PS: Acho als Pinbelegung hab ich display  D4..7 auf Port pin 0..3
gelegt.

und auch die lcd.h entsprechend angepasst. Dort steht auch nochmal ein
Verweis auf die quartz - Frequenz drinne wege delays, die das Display
brauch.

Grüße,

Stefan

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe ebenfalls probleme mit dem ST7036-Controller.

Hab bisher nur I2C-LCDs angesteuert, und bin sozusagen Neuling
im Gebrauch der 4bit-Ansteuerung.

Im Datenblatt des ST7036 erscheint mir bei der Initialisierung im
Assembler-Code-Beispiel etwas merkwürdig.
Dort werden bei den 4 Function-Sets nur jeweis die oberen 4 Bits
übertragen; und bei den weiteren Registern beide Halb-Bytes
(erst die oberen, und dann die unteren 4Bits). ?!?

Ich weiß nicht wie das bei anderen Displays im 4Bit Mode funktioniert.
Hab mein Programm mal angehängt(hier nur 3 Funct.Sets mit nur 4Bit)
Klappt aber so und so nicht ;(

Bin der Meinung, entweder immer nur die oberen 4 Bits, oder immer beide
Halbbytes nacheinander und dabei das untere Halbbyte als
don't care, oder?

Grüße,

Rainer

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

ich habe mir Ulrich Radig`s Lib umgeschrieben.

Damit laüft mein DOGM 163 super.

Bei Intresse, bitte melden.

Einzigstes Problem war, das ich eine andere Pinbelegung wie Ulrich
habe.

Ich hebe die Daten und die Steuerleitungen genau anders rum.

Bei Ulrichs Lis ist auch ein sehr schoner Formatierungteil dabei,
um einfach Int Werte auszugeben.

Gruß Toby

Autor: Stefan Siedler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobi,

ich hätte Interesse an deiner lib!

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

bei mir läufts jetzt auch ! :)

Hab die Initialisierungswerte vom Datenblatt falsch
interpretiert. (meiner Meinung nach auch leltsam dargestellt)

Konnte jetzt sämtliche NOPs und Waits wieder löschen.
Läuft jetzt einfach prima.
Habs am MSP-Port4 hängen im 4Bit-Mode und 3,3V

Kann mich nur anschließen:
Bei Interesse einfach melden.

Schönen Tag noch!

Rainer

Autor: Stefan Siedler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja dann her damit!

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gruß Rainer

Autor: Stefan Siedler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rainer,

kannst du die Datei, inder du die Ports und Pins definierst auch noch
mitschicken (DOGM.h?)

Stefan

Autor: Rainer (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stefan,

hier die Definition des Port4

Gruß Rainer

Autor: Tobias Tetzlaff (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das DOGM 163 am laufen.

Ich habe die Ulrich Radig lib umgeschrieben.

Könnt ja mal reischauen!
Aber bitte entschuldigt die Schreibweise im Main.
Ist halt nur der Anfang meines Projektes.

Ach, wie kann man eigentlich einen AD Wert umrechnen, und mit 2
Kommastellen ausgeben?

zB. Die Temperatur mit einer Kommastelle,
die Spannung mit 2 Kommastellen ?

Und dann habe ich da noch eine KTY13-5 drauf.
Wie kann ich damit die Temperatur berechnen?
Wie geht das mit einer nicht linearen Wiederstands Kurve,
und deren berechnung?

Das main.c sieht in etwa so aus :

#include <main.h>
#include <lcd.c>
#include <avr/signal.h>
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr\pgmspace.h>
#include <avr/iom128.h>

volatile char Software_Zaehler = 0;
volatile char AD_Kanal_Zaehler = 0;
volatile int FP_Chk = 0;
volatile int RC_Sply = 0;
volatile int ECU_Sply = 0;
volatile int AMB_Temp = 0;
volatile int EGT = 0;
volatile int Oil_Temp = 0;
volatile int Aux1_Emk = 0;
volatile int Anlg_Aux = 0;

volatile int FP_Chk_1 = 0;
volatile int RC_Sply_1 = 0;
volatile int ECU_Sply_1 = 0;
volatile int AMB_Temp_1 = 0;
volatile int EGT_1 = 0;
volatile int Oil_Temp_1 = 0;
volatile int Aux1_Emk_1 = 0;
volatile int Anlg_Aux_1 = 0;

/* Initialisierung */

void
ioinit (void)
{
/* Ein-/Ausgänge 1 Ausgang, 0 Eingang */

  //DDRA = 0xFF;    // Port Ausgang
  //PORTA = 0x00;    // Port alle Low
  //PORTA wird mit der lcd_init(LCD_DISP_ON); gesetzt

  DDRB = 0xFF;    // Port Ausgang
  PORTB = 0x0D;    // Port keine Pullup / High PB0-PB2-PB3

  DDRC = 0x00;    // Port Eingang
  PORTC = 0xFF;    // Port Pullups

  DDRD = 0x00;    // Port Eingang
  PORTD = 0xFF;    // Port Pullups

  DDRE = 0x00;    // Port Eingang
  PORTE = 0xFF;    // Port Pullup

  DDRF = 0x00;    // Port Eingang AD Wandler
  //PORTF = 0xFF;    // Port Pullup

  DDRG = 0x00;    // Port Eingang
  PORTG = 0x1F;    // Port Pullup


/* Timer1 MCU/1024 */
  TCCR1B = _BV (CS12) | _BV (CS00);

/* Timer1 Overflow */
  TIMSK = _BV (TOIE1);

}

void
adinit (void)
{
// ADEN enable, ADSC start, ADFR free running, ADSP2,1,0 MCU/128
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);

}

//Hauptprogramm
int main (void)
{
  //Initzialisierung
  ioinit();  //Ports und Timer setzen
  adinit();  //AD Wandler setzen

  //Initzialisierung des LCD - Displays
  LCD_Init();

  // 1. Zeile 5x16 Dots, 2. Zeile 5x8 Dots
  Write_LCD(0x2E,0);  //Function set DH=1,N=1,Tabelle 1,0
  Write_LCD(0x18,0);  //Tabelle 1,0, UD=1

  LCD_Clear ();
  LCD_Print(0,4,"Irgendwas");
  LCD_Print(1,3,"und nochwas");

  //Schleife
  for (int a=0;a<30000;a++)
  {
  for (int b=0;b<10000;b++);
  }

  LCD_Clear ();

  sei ();

  //Hauptprogramm läuft ständig in einer schleife und macht nichts
  for(;;);
}

SIGNAL(SIG_OVERFLOW1)
{

  if(AD_Kanal_Zaehler > 4)
  {
    AD_Kanal_Zaehler = 0;
  }

  AD_Kanal_Zaehler ++;

  switch (AD_Kanal_Zaehler) //welcher AD Kanal soll gelesen werden
  {
   //case 1 :
    //ADMUX = 0x40;  //AD Kanal 0  FP_Chk
    //FP_Chk = 0;

  //break;
   case 1 :

    ADMUX = 0x41;  //AD Kanal 1  RC_SPLY
    ADCSRA |= (1<<ADSC);            // eine Wandlung "single
conversion"
    while(!(ADCSRA & (1<<ADIF)));   // auf Abschluss der Konvertierung
warten (ADIF-bit)
    RC_Sply = ADC;
    //ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
    RC_Sply_1 = RC_Sply;
    //RC_Sply /= 1.69;  // V errechnen

  break;
   case 2 :

    ADMUX = 0x42;  //AD Kanal 2  ECU_Sply
    ADCSRA |= (1<<ADSC);            // eine Wandlung "single
conversion"
    while(!(ADCSRA & (1<<ADIF)));   // auf Abschluss der Konvertierung
warten (ADIF-bit)
    ECU_Sply = ADC;
    //ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
    ECU_Sply_1 = ECU_Sply;
    //ECU_Sply /= 1.69;  // V errechnen

  break;
   case 3 :

    ADMUX = 0x43;  //AD Kanal 3  AMB_Temp
    ADCSRA |= (1<<ADSC);            // eine Wandlung "single
conversion"
    while(!(ADCSRA & (1<<ADIF)));   // auf Abschluss der Konvertierung
warten (ADIF-bit)
    AMB_Temp = ADC;
    //ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
    AMB_Temp_1 = AMB_Temp;
    //AMB_Temp /= 1.69;  // °C errechnen

  break;
  case 4 :

    ADMUX = 0x44;  //AD Kanal 4  EGT
    ADCSRA |= (1<<ADSC);            // eine Wandlung "single
conversion"
    while(!(ADCSRA & (1<<ADIF)));   // auf Abschluss der Konvertierung
warten (ADIF-bit)
    EGT = ADC;
    //ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
    EGT_1 = EGT;

  break;
   case 5 :

    ADMUX = 0x45;  //AD Kanal 5  Oil_Temp
    ADCSRA |= (1<<ADSC);            // eine Wandlung "single
conversion"
    while(!(ADCSRA & (1<<ADIF)));   // auf Abschluss der Konvertierung
warten (ADIF-bit)
    Oil_Temp = ADC;
    //ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)
    Oil_Temp_1 = Oil_Temp;

  break;
   //case 7 :
    //ADMUX = 0x46;  //AD Kanal 6  Aux1_Emk
    //Aux1_Emk = 0;

  //break;
   //case 8 :
    //ADMUX = 0x47;  //AD Kanal 7  Anlg_Aux
    //Anlg_Aux = 0;

  //break;
  }

  // LCD Init 3 Zeilen 5x8 Dots
  Write_LCD(0x29,0);  //Function set DH=0,N=1,Tabelle 1,0

  LCD_Clear ();

  LCD_Print(0,0,"AD Wert:    %4i",ADC);
  LCD_Print(1,0,"AD Kanal:      %1i",AD_Kanal_Zaehler);
  //LCD_Print(2,0,"AD Wert: %5i",ADC);

  PORTB  |= (1 << PB0); // rote LED aus Bit setzen
  PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
  PORTB  |= (1 << PB3); // grüne LED aus Bit setzen

  switch (AD_Kanal_Zaehler) //welcher AD Kanal soll gelesen werden
  {
    //case 1 :
    //LCD_Print(2,0,"Fuel Pump Check");
      //PORTB  &= ~(1 << PB0); // rote LED an Bit löschen
      //PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      //PORTB  |= (1 << PB3); // grüne LED aus Bit setzen
  //break;
  case 1 :
    //LCD_Print(2,0,"RC Spannung");

    RC_Sply_1 /= 0.646;  // V errechnen
    LCD_Print(2,0,"RC U:     %3i mV",RC_Sply_1);
      PORTB  |= (1 << PB0); // rote LED aus Bit setzen
      PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      PORTB  &= ~(1 << PB3); // grüne LED an Bit löschen
  break;
  case 2 :
    //LCD_Print(2,0,"ECU Spannung");

    ECU_Sply_1 /= 0.361;  // V errechnen
    LCD_Print(2,0,"ECU U:   %4i mV",ECU_Sply_1);
      PORTB  |= (1 << PB0); // rote LED aus Bit setzen
      PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      PORTB  &= ~(1 << PB3); // grüne LED an Bit löschen
  break;
  case 3 :
    //LCD_Print(2,0,"AMB Temperatur"AMB_Temp);

    AMB_Temp_1 /= 1.477;  // °C errechnen
    LCD_Print(2,0,"AMB Temp:  %2i%cC",AMB_Temp_1,0xDF);  //
Wert(int),°(c 0xDF),C, temp_2,0xDF,C
      PORTB  |= (1 << PB0); // rote LED aus Bit setzen
      PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      PORTB  &= ~(1 << PB3); // grüne LED an Bit löschen
  break;
  case 4 :
    LCD_Print(2,0,"EGT");
      PORTB  |= (1 << PB0); // rote LED aus Bit setzen
      PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      PORTB  &= ~(1 << PB3); // grüne LED an Bit löschen
  break;
  case 5 :
    LCD_Print(2,0,"Oil Temperatur");
      PORTB  |= (1 << PB0); // rote LED aus Bit setzen
      PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      PORTB  &= ~(1 << PB3); // grüne LED an Bit löschen
  break;
  //case 7 :
    //LCD_Print(2,0,"AUX 1 EMK");
      //PORTB  &= ~(1 << PB0); // rote LED an Bit löschen
      //PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      //PORTB  |= (1 << PB3); // grüne LED aus Bit setzen
  //break;
  //case 8 :
    //LCD_Print(2,0,"Analog AUX");
      //PORTB  &= ~(1 << PB0); // rote LED an Bit löschen
      //PORTB  |= (1 << PB2); // gelbe LED aus Bit setzen
      //PORTB  |= (1 << PB3); // grüne LED aus Bit setzen
  //break;
  }

  //int temp_1 = 0;
  //int temp_2 = 0;

  //temp_1 = ADC;
  //temp_1 /= 1.69;

  //temp_2 = ADC;
  //temp_2 /= 17;

  //batt_1 = ADC/0.0635;
  //batt_1 = ADC/0.633;    // mV

  //batt_11 = ADC / 63;    // V ganze Zahl
  //batt_12 = ADC % 63;      // V Komma Stellen

  //batt_2 = ADC/0.633;    // mV

  //batt_21 = ADC / 63;    // V ganze Zahl
  //batt_22 = (ADC % 63)/10;    // V Komma Stellen

  //temp_1 = ADC % 62;
  //batt_2 = (batt_1 % 6333) / 100;    // V Komma Stellen


  //temp_1 = ADC ;

  // 3 Zeilen 5x8 Dots
  //Write_LCD(0x29,0);  //Function set DH=0,N=1,Tabelle 1,0

  //LCD_Print(0,0,"AD Wert: %5i",ADC);
  //LCD_Print(1,0,"Temp Wert: %3i",temp_1);
  //LCD_Print(2,0,"Temperatur: %2i C",temp_2);

  //LCD_Print(2,0,"Temperatur: %2i%cC",temp_2,0xDF);  //
Wert(int),°(c
0xDF),C, temp_2,0xDF,C

  for (int a=0;a<6000;a++)
    {
    for (int b=0;b<2000;b++);
    }

}


Gruß Toby

Autor: <shoo:bo> (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!

Tschuldigung, das ich störe, aber kennt jemand eine deutsch- oder
englischsprachige Homepage, die aussagt, welche Pins auf high und
welche auf low gesetzt sein müssen um ein Display anzusprechen (für
Initialisierung und Darstellung von Text)? Ich wäre sehr dankbar, da
ich leider keine Finde :-( Für ein Projekt in der Schule!

Danke

<shoo:bo>

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist nich die seite von Ulrich radig auf Deutsch?
Ich meine, da steht etwas über die Steuerleitungen.

Kann mich aber auch irren.

Gruß Toby

Autor: ralphberner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Display läuft bei mir, aber ich habe es nicht geschafft nachträglich
den Kontrast zu verändern. Weiss jemand wass man da senden muss?
Habe für folgende beiden write-Befehle verschiedene Werte ausprobiert.
Aber der Kontrasst ist immer gleich.

_lcd_write_data(0x78); //Senden des Contrast SET
_long_delay();
_lcd_write_data(0x55); //Senden des Power/ICON/Conrast control
_long_delay();

Ich weiss zusätzlich auch nicht wass es mit diesem "Follower Control"
auf sich hat. Vielleicht hat das auch einen Einfluss?

_lcd_write_data(0x6E); //Senden des Follower control
_long_delay();

Gruss Ralph

Autor: Harald Weichenberger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich versuche derzeit auch ein LCD-Displ. mit einem ST7036-Controller
zum Laufen zu bringen. Bisher leider erfolglos :(
Ich werde es nun mit dem von Tobias Tetzlaff veröffentlichten Programm
versuchen. Dabei stellt sich mir jedoch eine Frage.
In der Datei lcd.h steht in Zeile 26 als Anmerkung, dass LCD_D0 bis
LCD_D3 auf gnd geschlossen gehören. Im Datenblatt steht jeoch, dass
diese auf VDD geschlossen werden müssen.

Funktioniert hier beides, oder handelt es sich hierbei um einen kleinen
Tippfehler?

LG Harry

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das ist wirklich ein Tippfehler.

D0-D3 müssen auf VDD.

Ich habe übrigens auch mal die LCD Lib für CodeVision umgeschrieben.
Damit kann man den Kontrast und die Zeilenhöhe (Double High) ändern.

Gruß Toby

Autor: Daniel Held (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bin auch gerade am mühen das DOG-M 162 zum Laufen zu bringen.
Leider bleibt das Display bisher dunkel.
Auch der Versuch mit Toby's DOG.c brachte keinen Erfolg.
Hat jmd. von Euch ein *.hex file für den Mega8 zum Testen? will nur
wissen ob das Display defekt ist.

Gruß Dani

Autor: Daniel Held (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, jetzt läufts.
War ein timer Problem.
Danke an Wolfram Hildebrandt für die Hilfe.
Gruß Dani

Autor: rafiles (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

es ist lange her, aber die Probleme bestehen immernoch

wollte fragen


Ich habe

ST7036
EA-DOG
mit CortexM3

kann man code von Rainer dort verwenden
was sollte ich da ändern (HelloWorld) Ausgabe


dankeschön

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.