mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mit Leerzeichen etwas überschreiben "GLCD KS108"


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat jemand eventuell einen Codeschnipsel der es ermöglicht mit 
Leerzeichen etwas anderes auf einem KS108 kompatiblen Display zu 
überschreiben? Habe schon mehrere Libs (ape, mylcd) ausprobiert, aber 
überschrieben wird nix. Den Code verstehe ich leider auch nicht 
komplett, sonst hätte ich das schon was abgeändert.
Mein Problem ist eine Uhrzeitanzeige, wobei das Display am flackern ist, 
da es mit lcdclear() immer komplett gelöscht und neu beschrieben werden 
muss.
Ich würde gerne nur bestimmte bereiche löschen.
Ein Rechteck darüber zeichnen dauer auch viel zu lange, da die 
set_pixel() Funktion verwendet wird.

Danke schon einmal!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mein Problem ist eine Uhrzeitanzeige, wobei das Display am flackern ist,
>da es mit lcdclear() immer komplett gelöscht und neu beschrieben werden

Wozu löschen? Schreib doch einfach die neue Uhrzeit drüber
über die alte.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Anscheinend werden aber nur die "gesetzten" Pixel geschrieben.
Wenn ich etwas darüber schreibe, liegen irgendwann 10000 Zahlen 
übereinander und ich sehe und ein schwarzes Kästchen.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Anscheinend werden aber nur die "gesetzten" Pixel geschrieben.
>Wenn ich etwas darüber schreibe, liegen irgendwann 10000 Zahlen
>übereinander und ich sehe und ein schwarzes Kästchen.

Das ist natürlich nicht schön;)
Wie zeigst du die Uhrzeit an?
Per Grafikfont, oder Siebensegment selbstgebastelt?
Zeig doch doch mal den Code.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein GLCD von Pollin und benutze die Lib von diesen Beitrag 
Beitrag "GLCD Routinen ( KS0108, HD61202 )"  .

in der main mache ich das ganze so:


  while (1)
  {
    _delay_ms(500);

    lcd_set_cursor(0,LINE1+10);
    lcd_puts(BookAntiqua,"             ");
    lcd_set_cursor(0,LINE1+10);
    lcd_puts(BookAntiqua,DisNum(buffer,hh));  //stunden
    lcd_set_cursor(35,LINE1+7);
    lcd_puts(BookAntiqua,":");
    lcd_set_cursor(45,LINE1+10);
    lcd_puts(BookAntiqua,DisNum(buffer,mm));  //minuten
    lcd_set_cursor(80,LINE1+7);
    lcd_puts(BookAntiqua,":");
    lcd_set_cursor(90,LINE1+10);
    lcd_puts(BookAntiqua,DisNum(buffer,ss));  //sekunden

  }

Ich habe eine Funkuhr Routine eingebunden, aber um das ganze zu 
veranschauenlichen müsste ja dieser Schnipsel reichen

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ändere lcd_putc() mal so:
for (bit=0;bit<8;bit++)
 {
  if ((data&(1<<bit))!=0) lcd_set_pixel(x,cursor_y+page*8+bit,BLACK);
  else lcd_set_pixel(x,cursor_y+page*8+bit,WHITE);
 }

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yeah, sehr cool das funzt!
Vielen Dank für die kompetente Hilfe!

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber eine Frage habe ich noch, ist es nicht möglich etwas in den 
Speicher des Display Controllers zu schreiben (ist Speicher vorhanden?) 
und dann erst das ganze auf Display zu bringen?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der vorhandene Speicher wird sofort angezeigt.
Bei T6963C hat man meist mehr Speicher um ein Bild
im nicht sichtbaren Bereich erst komplett zu malen,
und dann den Bildspeicher umzuschalten.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, Danke

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.