Display ES DIPS082 // Hilfe Das Ding will nicht

OP #1776833
Lesenswert?

Guten Morgen,

die Initialisierung scheint zu funktionieren...

Ich sehe es blinken. :-) Schreibe ich allerdings etwas aufs Dislay,
sieht es so aus als ob das Display die Initialisierung vergisst.

DISPLAY : EA DIPS082 ohne Hintergrundbeleuchtung

Besten Dank für eure Hilfe

Lg
André
Angehängte Dateien:
#1776839
Lesenswert?

Mit deinen Änderungen in lcd.c hast du dir mehr geschadet als du gut 
gemacht hast
1
//------------------------------------------------------------------------------
2
void lcd_write (char Data,char CD)
3
//------------------------------------------------------------------------------
4
{
5
  
6
  
7
    //Wait until LCD is ready
8
  //while ((lcd_read(0)&(1<<BUSYBIT)) > 0 && timeout++ < 500) {};
9
  
10
  //Set Port Direction Register to Output for LCD Databus and LCD Controlbus
11
  //LCD_Port_DDR = LCD_DataOutput+(1<<LCD_RS | 1<<LCD_RW | 1<<LCD_E | 1<<LCD_LED);
12
  DDRA = 0xFF;
13
  
14
  
15
  //Soll ins Seuer oder Datenregister geschrieben werden?
16
  
17
  if (CD == 0)
18
    {
19
    PORTA &= ~(1<<LCD_RS); //RS = 0 Steuerregister
20
    }
21
    else
22
    {
23
    PORTA |= (1<<LCD_RS); //RS = 1 Dataregister
24
    }
25
  
26
  //Schreibsignal setzen
27
  PORTA &= ~(1<<LCD_RW);//Zum Schreiben RW-Pin = Low
28
  
29
  
30
  //Schreiben der 1. 4Bit an das LCD Display
31
  ucTempPortA = (Data & 0xF0);
32
  ucTempPortA = (ucTempPortA >>1);
33
  //uiTempPortA = (uiTempPortA << 3);
34
  //PORTA |=  0x78 & (uiTempPortA << 3);  //Write Nibbel MSB
35
  PORTA = ucTempPortA;

Gratuliere. Mit der letzten Zuweisung an PORTA hast du die ganze vorher 
mühsam gemachter Einstellung des RS bzw RW Bits am LCD zur Makulatur 
gemacht.
OP #1776953
Lesenswert?

So,

jetzt läuft es. Ich hatte den Originalcode vorher auch schon  verwendet 
hatte aber einen Denkfehler und habe es daher selbst versucht... :-)

Die überarbeitung hat es gebracht.

Eine kleines Problem besteht jedoch nach wie vor. Die zweite 
Displayzeile lässt sich nicht adressieren.

Wenn hier jemand eine Idee hat währe icg dankbar.


Lg
André


PS.: Arbeitszimmer 39°C ;-)
#1776956
Lesenswert?

Andre Wojciech schrieb:

> Eine kleines Problem besteht jedoch nach wie vor. Die zweite
> Displayzeile lässt sich nicht adressieren.

gib einen langen String in der 1. Zeile / 1. Spalte aus

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

und dann sieh nach welches Zeichen in der 2. Zeile / 1. Spalte als 
erstes auftaucht. Abzählen im langen String ergibt dir dann den Offset, 
den du bei den Cursorpositionierroutinen für die 2. Zeile eintragen 
musst.
OP #1776964
Lesenswert?

Nix zu machen. Der Displaykontroller fängt in der gleichen Zeile wie an.

Die zweite Zeile wird gar nich angesprochen.

Hier noch mal die Initialisierung des KS0066U:

Ich bin für jeden Vorschlag dankbar.

Lg
André




DDRA = 0xFF;


  //Wait a short Time afer Power on
  _delay_ms(100);


  lcd_write (0x20,0);    //FunktionSet

  lcd_write (0x20,0);

  lcd_write (0xC0,0);    //2Lines & Display On
  _delay_ms(1);

  lcd_write (0x0F,0);    //Display on  Coursor on  Blink on
  _delay_ms(1);

  lcd_write (0x01,0);    //Display Clear
  _delay_ms(2);

  lcd_write (0x07,0);    //Display Clear
OP #1777274
Lesenswert?

Habe ich ausprobiert, keine Veränderung. Die zweite Zeile lässt sich 
weder mit C0 noch mit 28 aktivieren.

Mittlerweile habe ich

- OptimizerLevel
- Timing
- Portsetting
- Display getauscht
- ne runge um en Block gemacht


ausprobiert alles ohne erfolgt. Vielleicht hat noch wer eine Idee.
Würde mich freuen

Lg

André

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