4 * t6963.c - Controll a t6963c display
6 * This file is released under the GNU General Public License. Refer
7 * to the COPYING file distributed with this package.
9 * (c) 2007 Carsten Presser cpresser AT fsing.uni-sb.de
10 * heavily inspired by Holger Klabunde
14 /** I N C L U D E S **********************************************************/
19 /** P R I V A T E P R O T O T Y P E S ***************************************/
20 unsigned char lcd_checkBusy(void);
22 /** V A R I A B L E S ********************************************************/
23 unsigned char lcd_auto_mode = MODE_NOAUTO;
26 /** H I G H L E V E L ********************************************************/
27 void lcd_ClearScreen(void)
31 // Address Pointer Set
32 lcd_WriteData(0x00); // byte1
33 lcd_WriteData(0x00); // byte2
34 lcd_WriteCommand(0x24); //set!
37 // bis 0x08F0 löschen...
38 lcd_SetAutomode(MODE_AUTO);
39 for(i=0; i <= 0x11E; i++)
41 lcd_WriteData(0x00); lcd_WriteData(0x00);
42 lcd_WriteData(0x00); lcd_WriteData(0x00);
43 lcd_WriteData(0x00); lcd_WriteData(0x00);
44 lcd_WriteData(0x00); lcd_WriteData(0x00);
46 lcd_SetAutomode(MODE_NOAUTO);
48 lcd_WriteData(0x00); // byte1
49 lcd_WriteData(0x00); // byte2
50 lcd_WriteCommand(0x24); //set!
54 void lcd_InitDisplay(void)
62 lcd_WriteCommand(0x80); // OR-Mode; CG-ROM Mode
65 lcd_WriteCommand(0x9C); // GFX-Mode=1, Text-Mode=1, Cursor=0, Blink=0 -> C
68 // CONTROL_WORD set Text-Area-Home
69 lcd_WriteData(0x00); // byte1
70 lcd_WriteData(0x08); // byte2
71 lcd_WriteCommand(0x40); //set!
73 // CONTROL_WORD SET Text-Area
74 lcd_WriteData(0x1E); // TA-Value (Address of Second Line)
75 lcd_WriteData(0x00); // always Zero
76 lcd_WriteCommand(0x41); // set!
78 // CONTROL_WORD set GFX-Area-Home
79 lcd_WriteData(0x00); // byte1
80 lcd_WriteData(0x00); // byte2
81 lcd_WriteCommand(0x42); //set!
83 // CONTROL_WORD SET GFX-Area
84 lcd_WriteData(0x1E); // Start-Address of Second Line
85 lcd_WriteData(0x00); // always Zero
86 lcd_WriteCommand(0x43); // set!
93 /** I N T E R F A C E ********************************************************/
94 unsigned char lcd_CheckBusy(void)
101 if (lcd_auto_mode == MODE_AUTO)
103 // in auto_mode only status3 is valid
114 // check status1 & status 2
128 void lcd_SetAutomode(unsigned char mode)
132 if (mode == MODE_AUTO)
134 lcd_WriteCommand(0xB0); // Data Auto Write Set
139 lcd_WriteCommand(0xB2); // Auto Mode Reset
142 lcd_auto_mode = mode;
147 void lcd_WriteData(unsigned char dat)
152 mLcdWriteData(dat); //Daten schreiben
157 void lcd_WriteCommand(unsigned char comand)
162 mLcdWriteData(comand); //Kommando schreiben
167 void lcd_WriteByte(unsigned char dat)
169 lcd_WriteData(dat); //Daten schreiben
170 lcd_WriteCommand(0xC0); //Kommando schreiben