Mit Leerzeichen etwas überschreiben "GLCD KS108"

Gast #1419720
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!
Gast #1419739
>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.
Gast #1419742
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.
Gast #1419747
>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.
Gast #1419754
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
Gast #1419763
Ändere lcd_putc() mal so:
1
for (bit=0;bit<8;bit++)
2
 {
3
  if ((data&(1<<bit))!=0) lcd_set_pixel(x,cursor_y+page*8+bit,BLACK);
4
  else lcd_set_pixel(x,cursor_y+page*8+bit,WHITE);
5
 }
Gast #1419779
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?
Gast #1419788
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.