Forum: Mikrocontroller und Digitale Elektronik Bitmap2LCD Beispielprojekt für T6963


von Thomas M. (tom_holzwurm)


Lesenswert?

Hallo,
nachdem ich jetzt mein erstes T6963 basierendes Display zum Laufen 
bekommen habe ( Text und Basisgrafik ) funktioniert, will ich eigene 
Fonts und Bitmaps in meine Anwendung einbauen. Ich habe mir "Bitmap2LCD" 
zugelegt, komme aber mit der Software insofern nicht klar, weil ich z.B. 
einige Parameter nicht zuordnen kann und der erzeugte Quellcode daher 
fehlerhaft ist. Die Online Hilfe ist für einen Einsteiger nicht sehr 
ergiebig, der Programmierer auch nicht willig was zu liefern und im Web 
findet man auch nicht viel:
Frage daher kann mir jemand ein simples Projekt für den T6963 zur 
Verfügung stellen ?
Danke im Voraus,
Danke
Gruß Thomas

von Karl H. (kbuchegg)


Lesenswert?

Thomas M. schrieb:
> Hallo,
> nachdem ich jetzt mein erstes T6963 basierendes Display zum Laufen
> bekommen habe ( Text und Basisgrafik ) funktioniert, will ich eigene
> Fonts und Bitmaps in meine Anwendung einbauen. Ich habe mir "Bitmap2LCD"
> zugelegt, komme aber mit der Software insofern nicht klar, weil ich z.B.
> einige Parameter nicht zuordnen kann

woran scheitert es denn?
So schwer ist eine Bitmap ja dann grundsätzlich auch wieder nicht zu 
verstehen, solange du dich nicht mit Kompressionsalgorithmen rumschlagen 
musst.

von W.S. (Gast)


Lesenswert?

Thomas M. schrieb:
> nachdem ich jetzt mein erstes T6963 basierendes Display zum Laufen
> bekommen habe ( Text und Basisgrafik ) funktioniert, will ich eigene
> Fonts und Bitmaps in meine Anwendung einbauen.

Na, wenn es wirklich eigene Fonts sein sollen, dann mußt du sie dir 
eben selbst ausdenken. Aber dazu gehört sowas wie ein kleines GDI, also 
der Teil deiner Firmware, der für das Zeichnen von Punkten, Linien, 
Rechtecken, Kreisen, Textzeichen und Bitmaps zuständig ist. Besonders 
bei den Fonts muß ja GDI und Font zueinander passen. Ja, das kann man 
sich selber ausdenken, ich hab's ja auch mal gemacht - und hier 
gepostet: Helvetica10 und 12 und auch noch bold (sofern man bei 10..12 
Pixel von Helvetica sprechen darf...)

Aber da du dir so ein "Bitmap2LCD" zugelegt hast, gehe ich mal davon 
aus, daß du nur was Fertiges benutzen willst und es dir nicht selbst 
gestalten willst. Nur zu, das gibt es bereits fertig hier im Forum. Aber 
damit "unze Kallheinz" nicht meckert, verschweige ich mal hier das 
Reizwort.

W.S.

von Thomas M. (tom_holzwurm)


Lesenswert?

Vielleicht habe ich mich auch unklar ausgedrückt:
Für mehrere geplante Projekte ( Sprache ist C, µC ist ATXMEGA ) brauche 
ich Userinterfaces auf dem GDI. Mein Vorstellung: Bit2LCD bereitet die 
gezeichneten Daten auf erzeugt eine Tabelle die ins Flash-ROM kommt und 
dann brauche ich noch eine Laderoutine.
Ich hab' mir auch schon verschiedenste Beispiele angeschaut, daher ist 
mir das Prinzip durchaus klar, nur jeder realisierts halt anders.
Und für das konkrete Produkt Bitmap2LCD gibts anscheinend wirklich nix 
?!?
Mir fehlt auch nicht das grundsätzliche Verständnis, sondern eher ein 
Manual für die Software, ein How-To-Guide, das gibt es halt nicht.
Ich kann mir das auch alles per Trial and Error herleiten, aber wenn 
einer das Rad schon erfunden hätte ......
Evtl. ist es jetzt klarer, wo ich hinwill.
Gruß Thomas

von grundschüler (Gast)


Lesenswert?

ich hatte mal sowas ähnliches. Vielleicht kannst du ja was damit 
anfangen:
1
void bmp_to_lcd(u8 teilbild){
2
  u32 anz_px,i,h_px;
3
  u8 sizebuf[4];
4
  lcd_streamwrite_start(teilbild);
5
6
bmp_open_dateiname(1);
7
     if (res) return;
8
     res = f_lseek(&Fil, 4);//size pixelbytes
9
          res = f_read(&Fil, sizebuf, 4, &br);     // Read a chunk of src file
10
     h_px=sizebuf[3]<<24|sizebuf[2]<<16|sizebuf[1]<<8|sizebuf[0];
11
     res = f_lseek(&Fil, 34);//size pixelbytes
12
          res = f_read(&Fil, sizebuf, 4, &br);     // Read a chunk of src file
13
     anz_px=sizebuf[3]<<24|sizebuf[2]<<16|sizebuf[1]<<8|sizebuf[0];
14
res = f_lseek(&Fil, 54+12);//start pixel
15
16
while(anz_px>=2560){
17
res = f_read(&Fil, cambuffer, 2560, &br);     // Read a chunk of src file
18
//DMA_transfer_SSP0x(0);
19
if (h_px==640){
20
lcd_streamwrite_px4(cambuffer, 2560);
21
}else{
22
lcd_streamwrite_px4(cambuffer, 2560);
23
}
24
25
anz_px-=2560;
26
}
27
if(anz_px){
28
  res = f_read(&Fil, cambuffer, anz_px, &br);     // Read a chunk of src file
29
  lcd_streamwrite_px4(cambuffer, anz_px);
30
}//if
31
lcd_streamwrite_stop();
32
}

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
Noch kein Account? Hier anmelden.