Hallo,
Ich habe grade eben mal ein T6963C Display an mein STK500 gepinnt und
wollte es mit dieser Lib hier testen:
Beitrag ""Bessere" T6963c Library"
Ich hab also die die ganzen Ports in der Header Datei angepasst und
versucht die entsprechenden Daten für mein 128x64 Pixel großes Display
einzutragen.
Das ganze Teil funktioniert wunderbar im Textmodus. Ich kann ohne
Probleme das ganze Display mit Text vollschreiben. Auch mit eigenen
Fonts.
Das Problem ist jetzt, wenn ich da ein 128x64 Pixel großes Bild anzeigen
möchte. Dieses Bild ist ca. um 64 Pixel in der Breite nach links
verschoben. Da, wo dann die 64 Pixel links übrig ist, befindet sich
wieder das Bild zur hälfte. Zudem ist das Ding invertiert.
Ich habe jetzt 2 Vermutungen, wieso:
1) Da sind irgendwie immernoch falsche Adressen eingetragen für mein
Display. Im Datenblatt kann ich da allerdings auch nicht viel drüber
finden.
2) Das Bild, was cih nutze habe ich falsch konvertiert:
Als erstes ein 128x64 Pixel großes Bild mit Paint als monochrom Bitmap
abgespeichert, dann mit Ulrig Radigs WinBin Tool konvertiert und dann so
lange Bytes am Anfang weggeschnitten, bis es 128*64/8 Bytes groß war.
Somit müsste der Header ja weg sein und nur noch Bilddaten vorhanden
sein.
Jemand ne Idee, was da nicht funktionieren könnte?
Bedankt,
Andreas
Header:
1 | //Pinout
|
2 | #define T6963C_PORT_DATA PORTC //Dataport
|
3 | #define T6963C_DDR_DATA DDRC
|
4 | #define T6963C_PIN_DATA PINC
|
5 |
|
6 | #define T6963C_PORT_CTRL PORTB //Controlport (RW, RD, CE, RST, CD)
|
7 | #define T6963C_DDR_CTRL DDRB
|
8 | #define T6963C_PIN_CTRL PINB
|
9 |
|
10 | #define T6963C_WR PB0 //Controlbits
|
11 | #define T6963C_RD PB1
|
12 | #define T6963C_CE PB2
|
13 | #define T6963C_RST PB4
|
14 | #define T6963C_CD PB3
|
15 |
|
16 | //Physical Description
|
17 | #define T6963C_ADDR_CGRAML 0x1800 //Lower half of CG (Chars 00-7F)
|
18 | #define T6963C_ADDR_CGRAMH T6963C_ADDR_CGRAML + 0x80*8 //Higher half of CG (Chars 80-FF)
|
19 | #define T6963C_ADDR_GRAPHIC 0x0400
|
20 | #define T6963C_ADDR_TEXT 0x0000
|
21 | #define T6963C_TEXT_COLS 21 //21 bytes for 6x8 Font
|
22 | #define T6963C_TEXT_ROWS 8
|
23 | #define T6963C_GRPH_COLS 16 //16 bytes = 128 bits = 128 px
|
24 | #define T6963C_GRPH_ROWS 64
|
25 |
|
26 | //Options Defines for Init()
|
27 | #define T6963C_MODE_OR 0x00
|
28 | #define T6963C_MODE_XOR 0x01
|
29 | #define T6963C_MODE_AND 0x03
|
30 | #define T6963C_MODE_TEXTATTR 0x04
|
31 | #define T6963C_CG_INTERNALROM 0x00
|
32 | #define T6963C_CG_EXTERNALRAM 0x04
|
33 |
|
34 | //Mode Defines for Init()
|
35 | #define T6963C_DISP_OFF 0x00
|
36 | #define T6963C_CURSOR 0x02
|
37 | #define T6963C_CURSOR_BLINK 0x03
|
38 | #define T6963C_TEXT 0x04
|
39 | #define T6963C_GRAPHIC 0x08
|
40 | #define T6963C_TEXT_GRAPHIC 0x0C
|