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!
>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.
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.
>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.
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
Ä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 | }
|
Yeah, sehr cool das funzt! Vielen Dank für die kompetente Hilfe!
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?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.