AD-128160-UART制御用のライブラリ http://www.aitendo.co.jp/product/3119 gingaxさんのプログラムを参考に作らせてもらっています。 http://mbed.org/users/akira/libraries/AD128160/m159hi

Dependents:   AD128160_HelloWorld

Committer:
nucho
Date:
Tue Dec 13 15:37:06 2011 +0000
Revision:
3:d15cda2a5e91
Parent:
2:6f2db745808e
add textsetting(color,font size)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:2e2f3b389d8a 1 #include "AD128160.h"
nucho 0:2e2f3b389d8a 2
nucho 0:2e2f3b389d8a 3 AD128160::AD128160(PinName tx,PinName reset):_device(tx,NC),_rst(reset) {
nucho 2:6f2db745808e 4 init();
nucho 0:2e2f3b389d8a 5 }
nucho 0:2e2f3b389d8a 6
nucho 0:2e2f3b389d8a 7 void AD128160::init() {
nucho 0:2e2f3b389d8a 8 reset();
nucho 0:2e2f3b389d8a 9 brightness(300);
nucho 0:2e2f3b389d8a 10 cls();
nucho 0:2e2f3b389d8a 11 locate(0,0);
nucho 0:2e2f3b389d8a 12 color(0xffff);
nucho 3:d15cda2a5e91 13
nucho 3:d15cda2a5e91 14 _font_x=8;
nucho 3:d15cda2a5e91 15 _font_y=16;
nucho 3:d15cda2a5e91 16 _max_columns = LCD_WIDTH/_font_x;
nucho 3:d15cda2a5e91 17 _max_rows = LCD_HEIGHT/_font_y;
nucho 3:d15cda2a5e91 18 }
nucho 3:d15cda2a5e91 19
nucho 3:d15cda2a5e91 20 int AD128160::_putc(int c) {
nucho 3:d15cda2a5e91 21 if (c == '\n') {
nucho 3:d15cda2a5e91 22 newline();
nucho 3:d15cda2a5e91 23 } else {
nucho 3:d15cda2a5e91 24 int x = _column * _font_x; // FIXME: Char sizes
nucho 3:d15cda2a5e91 25 int y = _row * _font_y;
nucho 3:d15cda2a5e91 26 unsigned char data[5];
nucho 3:d15cda2a5e91 27
nucho 3:d15cda2a5e91 28 data[0]= x >> 8;//x upper 8bit
nucho 3:d15cda2a5e91 29 data[1]= x & 0xFF;//x low 8bit
nucho 3:d15cda2a5e91 30 data[2]= y >> 8; //y upper 8bit
nucho 3:d15cda2a5e91 31 data[3]=y & 0xFF; //y low 8bit
nucho 3:d15cda2a5e91 32 data[4]=c;
nucho 3:d15cda2a5e91 33 cwrite(0x0B,data,5);
nucho 3:d15cda2a5e91 34
nucho 3:d15cda2a5e91 35 _column++;
nucho 3:d15cda2a5e91 36 if (_column >= _max_columns) {
nucho 3:d15cda2a5e91 37 _row++;
nucho 3:d15cda2a5e91 38 _column = 0;
nucho 3:d15cda2a5e91 39 }
nucho 3:d15cda2a5e91 40 if (_row >= _max_rows) {
nucho 3:d15cda2a5e91 41 _row = 0;
nucho 3:d15cda2a5e91 42 }
nucho 3:d15cda2a5e91 43 }
nucho 3:d15cda2a5e91 44 return c;
nucho 3:d15cda2a5e91 45 }
nucho 3:d15cda2a5e91 46 void AD128160::textSetting(int size,int rgb) {
nucho 3:d15cda2a5e91 47 unsigned char data[4];
nucho 3:d15cda2a5e91 48
nucho 3:d15cda2a5e91 49 data[0]= size >> 8;//x upper 8bit
nucho 3:d15cda2a5e91 50 data[1]= size & 0xFF;//x low 8bit
nucho 3:d15cda2a5e91 51 data[2]= rgb >> 8; //y upper 8bit
nucho 3:d15cda2a5e91 52 data[3]= rgb & 0xFF; //y low 8bit
nucho 3:d15cda2a5e91 53
nucho 3:d15cda2a5e91 54 cwrite(0x81,data,4);
nucho 3:d15cda2a5e91 55
nucho 3:d15cda2a5e91 56 switch (size) {
nucho 3:d15cda2a5e91 57 case 0:
nucho 3:d15cda2a5e91 58 _font_x=6;
nucho 3:d15cda2a5e91 59 _font_y=10;
nucho 3:d15cda2a5e91 60 break;
nucho 3:d15cda2a5e91 61 case 1:
nucho 3:d15cda2a5e91 62 _font_x=7;
nucho 3:d15cda2a5e91 63 _font_y=13;
nucho 3:d15cda2a5e91 64 break;
nucho 3:d15cda2a5e91 65 case 3:
nucho 3:d15cda2a5e91 66 _font_x=10;
nucho 3:d15cda2a5e91 67 _font_y=20;
nucho 3:d15cda2a5e91 68 break;
nucho 3:d15cda2a5e91 69 case 4:
nucho 3:d15cda2a5e91 70 _font_x=16;
nucho 3:d15cda2a5e91 71 _font_y=32;
nucho 3:d15cda2a5e91 72 break;
nucho 3:d15cda2a5e91 73 default:
nucho 3:d15cda2a5e91 74 _font_x=8;
nucho 3:d15cda2a5e91 75 _font_y=16;
nucho 3:d15cda2a5e91 76 break;
nucho 3:d15cda2a5e91 77 }
nucho 3:d15cda2a5e91 78 _max_columns = LCD_WIDTH/_font_x;
nucho 3:d15cda2a5e91 79 _max_rows = LCD_HEIGHT/_font_y;
nucho 3:d15cda2a5e91 80
nucho 3:d15cda2a5e91 81 locate(0,0);
nucho 3:d15cda2a5e91 82 }
nucho 3:d15cda2a5e91 83
nucho 3:d15cda2a5e91 84
nucho 3:d15cda2a5e91 85 void AD128160::cwrite(int command,unsigned char* data,int length) {
nucho 3:d15cda2a5e91 86 unsigned char sum=0;
nucho 3:d15cda2a5e91 87 _device.putc(0x55);//start code
nucho 3:d15cda2a5e91 88 _device.putc(length+1);
nucho 3:d15cda2a5e91 89 _device.putc(command);
nucho 3:d15cda2a5e91 90 for (int i=0; i<length; i++) {
nucho 3:d15cda2a5e91 91 _device.putc(data[i]);
nucho 3:d15cda2a5e91 92 sum = sum+data[i];
nucho 3:d15cda2a5e91 93 }
nucho 3:d15cda2a5e91 94 sum += command;
nucho 3:d15cda2a5e91 95 _device.putc(sum);//check sum
nucho 3:d15cda2a5e91 96 _device.putc(0xAA);//end core
nucho 0:2e2f3b389d8a 97 }
nucho 0:2e2f3b389d8a 98
nucho 2:6f2db745808e 99 void AD128160::brightness(int value) {
nucho 3:d15cda2a5e91 100 unsigned char data[2];
nucho 3:d15cda2a5e91 101 data[0] = (value & 0xff00)>>8;
nucho 3:d15cda2a5e91 102 data[1] = value & 0x00ff;
nucho 2:6f2db745808e 103
nucho 3:d15cda2a5e91 104 cwrite(0x89,data,2);
nucho 0:2e2f3b389d8a 105 }
nucho 0:2e2f3b389d8a 106
nucho 2:6f2db745808e 107 void AD128160::reset() {
nucho 0:2e2f3b389d8a 108 _rst = 0; //Reset
nucho 0:2e2f3b389d8a 109 wait(0.1);
nucho 0:2e2f3b389d8a 110 _rst = 1;
nucho 0:2e2f3b389d8a 111 wait(0.1);
nucho 0:2e2f3b389d8a 112 }
nucho 0:2e2f3b389d8a 113
nucho 0:2e2f3b389d8a 114
nucho 0:2e2f3b389d8a 115 void AD128160::speed(int baud) {
nucho 3:d15cda2a5e91 116 unsigned char data[4];
nucho 0:2e2f3b389d8a 117
nucho 3:d15cda2a5e91 118 data[0]=(baud&0xff000000)>>24;
nucho 3:d15cda2a5e91 119 data[1]=(baud&0x00ff0000)>>16;
nucho 3:d15cda2a5e91 120 data[2]=(baud&0x0000ff00)>>8;
nucho 3:d15cda2a5e91 121 data[3]=baud&0x000000ff;
nucho 2:6f2db745808e 122
nucho 3:d15cda2a5e91 123 cwrite(0x8B,data,4);
nucho 3:d15cda2a5e91 124
nucho 0:2e2f3b389d8a 125 wait(0.1);
nucho 0:2e2f3b389d8a 126 _device.baud(baud);
nucho 2:6f2db745808e 127
nucho 2:6f2db745808e 128 }
nucho 2:6f2db745808e 129
nucho 3:d15cda2a5e91 130 int AD128160::width() {
nucho 2:6f2db745808e 131 return LCD_WIDTH;
nucho 2:6f2db745808e 132 }
nucho 2:6f2db745808e 133
nucho 3:d15cda2a5e91 134 int AD128160::height() {
nucho 2:6f2db745808e 135 return LCD_HEIGHT;
nucho 2:6f2db745808e 136 }
nucho 2:6f2db745808e 137
nucho 3:d15cda2a5e91 138 int AD128160::columns() {
nucho 3:d15cda2a5e91 139 return _max_columns;
nucho 2:6f2db745808e 140 }
nucho 2:6f2db745808e 141
nucho 3:d15cda2a5e91 142 int AD128160::rows() {
nucho 3:d15cda2a5e91 143 return _max_rows;
nucho 0:2e2f3b389d8a 144 }
nucho 0:2e2f3b389d8a 145
nucho 0:2e2f3b389d8a 146 void AD128160::bmp(int x0,int y0,int bmp_no) {
nucho 3:d15cda2a5e91 147 unsigned char data[6];
nucho 0:2e2f3b389d8a 148
nucho 3:d15cda2a5e91 149 data[0] = x0 >> 8;
nucho 3:d15cda2a5e91 150 data[1] = x0 & 0xFF;
nucho 3:d15cda2a5e91 151 data[2] = y0 >> 8;
nucho 3:d15cda2a5e91 152 data[3] = y0 & 0xff;
nucho 3:d15cda2a5e91 153 data[4] = bmp_no >> 8;
nucho 3:d15cda2a5e91 154 data[5] = bmp_no & 0xFF;
nucho 3:d15cda2a5e91 155
nucho 3:d15cda2a5e91 156 cwrite(0x09,data,6);
nucho 0:2e2f3b389d8a 157 }
nucho 0:2e2f3b389d8a 158
nucho 0:2e2f3b389d8a 159 void AD128160::cls() {
nucho 3:d15cda2a5e91 160 unsigned char data[1];
nucho 3:d15cda2a5e91 161 data[0]=0x55;
nucho 3:d15cda2a5e91 162 cwrite(0x80,data,1);
nucho 2:6f2db745808e 163
nucho 0:2e2f3b389d8a 164 locate(0,0);
nucho 0:2e2f3b389d8a 165 }
nucho 0:2e2f3b389d8a 166
nucho 0:2e2f3b389d8a 167 void AD128160::locate(int column, int row) {
nucho 0:2e2f3b389d8a 168 _column = column;
nucho 0:2e2f3b389d8a 169 _row = row;
nucho 0:2e2f3b389d8a 170 }
nucho 0:2e2f3b389d8a 171
nucho 3:d15cda2a5e91 172 void AD128160::puts(char* s) {
nucho 3:d15cda2a5e91 173 int data_len=strlen(s)+4;
nucho 3:d15cda2a5e91 174 unsigned char data[data_len];
nucho 3:d15cda2a5e91 175 int x = _column * _font_x; // FIXME: Char sizes
nucho 3:d15cda2a5e91 176 int y = _row * _font_y;
nucho 3:d15cda2a5e91 177
nucho 3:d15cda2a5e91 178 data[0] = x >> 8;
nucho 3:d15cda2a5e91 179 data[1] = x & 0xFF;
nucho 3:d15cda2a5e91 180 data[2] = y >> 8;
nucho 3:d15cda2a5e91 181 data[3] = y & 0xFF;
nucho 3:d15cda2a5e91 182
nucho 3:d15cda2a5e91 183 strcpy((char*)(data+4),s);
nucho 3:d15cda2a5e91 184 cwrite(0x0B,data,data_len);
nucho 0:2e2f3b389d8a 185 }
nucho 0:2e2f3b389d8a 186
nucho 3:d15cda2a5e91 187 void AD128160::textBackground(bool mode,int rgb) {
nucho 3:d15cda2a5e91 188 unsigned char data[3];
nucho 0:2e2f3b389d8a 189
nucho 3:d15cda2a5e91 190 if (mode) data[0]=1;
nucho 3:d15cda2a5e91 191 else data[0]=0;
nucho 3:d15cda2a5e91 192 data[1]=(rgb >> 8) & 0xff;
nucho 3:d15cda2a5e91 193 data[2]=(rgb & 0xff);
nucho 3:d15cda2a5e91 194 cwrite(0x85,data,3);
nucho 0:2e2f3b389d8a 195 }
nucho 0:2e2f3b389d8a 196
nucho 0:2e2f3b389d8a 197 void AD128160::color(int rgb) {
nucho 3:d15cda2a5e91 198 unsigned char data[2];
nucho 0:2e2f3b389d8a 199
nucho 3:d15cda2a5e91 200 data[0]=(rgb >> 8) & 0xff;
nucho 3:d15cda2a5e91 201 data[1]=(rgb & 0xff);
nucho 3:d15cda2a5e91 202 cwrite(0x84,data,2);
nucho 0:2e2f3b389d8a 203 }
nucho 0:2e2f3b389d8a 204
nucho 0:2e2f3b389d8a 205 void AD128160::newline(void) {
nucho 0:2e2f3b389d8a 206 _column = 0;
nucho 0:2e2f3b389d8a 207 _row++;
nucho 2:6f2db745808e 208
nucho 3:d15cda2a5e91 209 if (_row >= _max_rows) {
nucho 0:2e2f3b389d8a 210 _row = 0;
nucho 0:2e2f3b389d8a 211 }
nucho 0:2e2f3b389d8a 212 }
nucho 0:2e2f3b389d8a 213
nucho 0:2e2f3b389d8a 214 void AD128160::pixel(int x0,int y0) {
nucho 3:d15cda2a5e91 215 unsigned char data[4];
nucho 0:2e2f3b389d8a 216
nucho 3:d15cda2a5e91 217 data[0] = x0 >> 8;
nucho 3:d15cda2a5e91 218 data[1] = x0 & 0xFF;
nucho 3:d15cda2a5e91 219 data[2] = y0 >> 8;
nucho 3:d15cda2a5e91 220 data[3] = y0 & 0xff;
nucho 3:d15cda2a5e91 221
nucho 3:d15cda2a5e91 222 cwrite(0x01,data,4);
nucho 0:2e2f3b389d8a 223 }
nucho 0:2e2f3b389d8a 224
nucho 0:2e2f3b389d8a 225 void AD128160::box(int x0,int y0,int x1,int y1,int paint) {
nucho 3:d15cda2a5e91 226 unsigned char data[8];
nucho 3:d15cda2a5e91 227
nucho 3:d15cda2a5e91 228 data[0] = x0 >> 8;
nucho 3:d15cda2a5e91 229 data[1] = x0 & 0xFF;
nucho 3:d15cda2a5e91 230 data[2] = y0 >> 8;
nucho 3:d15cda2a5e91 231 data[3] = y0 & 0xff;
nucho 3:d15cda2a5e91 232 data[4] = x1 >> 8;
nucho 3:d15cda2a5e91 233 data[5] = x1 & 0xFF;
nucho 3:d15cda2a5e91 234 data[6] = y1 >> 8;
nucho 3:d15cda2a5e91 235 data[7] = y1 & 0xff;
nucho 3:d15cda2a5e91 236
nucho 3:d15cda2a5e91 237 if (paint) cwrite(0x04,data,8);
nucho 3:d15cda2a5e91 238 else cwrite(0x03,data,8);
nucho 0:2e2f3b389d8a 239 }
nucho 0:2e2f3b389d8a 240
nucho 0:2e2f3b389d8a 241 void AD128160::circle(int x0,int y0,int r,int paint) {
nucho 3:d15cda2a5e91 242 unsigned char data[6];
nucho 3:d15cda2a5e91 243
nucho 3:d15cda2a5e91 244 data[0] = x0 >> 8;
nucho 3:d15cda2a5e91 245 data[1] = x0 & 0xFF;
nucho 3:d15cda2a5e91 246 data[2] = y0 >> 8;
nucho 3:d15cda2a5e91 247 data[3] = y0 & 0xff;
nucho 3:d15cda2a5e91 248 data[4] = r >> 8;
nucho 3:d15cda2a5e91 249 data[5] = r & 0xFF;
nucho 3:d15cda2a5e91 250
nucho 3:d15cda2a5e91 251 if (paint) cwrite(0x06,data,6);
nucho 3:d15cda2a5e91 252 else cwrite(0x05,data,6);
nucho 0:2e2f3b389d8a 253 }
nucho 0:2e2f3b389d8a 254
nucho 0:2e2f3b389d8a 255 void AD128160::line(int x0,int y0,int x1,int y1) {
nucho 3:d15cda2a5e91 256 unsigned char data[8];
nucho 0:2e2f3b389d8a 257
nucho 3:d15cda2a5e91 258 data[0] = x0 >> 8;
nucho 3:d15cda2a5e91 259 data[1] = x0 & 0xFF;
nucho 3:d15cda2a5e91 260 data[2] = y0 >> 8;
nucho 3:d15cda2a5e91 261 data[3] = y0 & 0xff;
nucho 3:d15cda2a5e91 262 data[4] = x1 >> 8;
nucho 3:d15cda2a5e91 263 data[5] = x1 & 0xFF;
nucho 3:d15cda2a5e91 264 data[6] = y1 >> 8;
nucho 3:d15cda2a5e91 265 data[7] = y1 & 0xff;
nucho 3:d15cda2a5e91 266
nucho 3:d15cda2a5e91 267 cwrite(0x02,data,8);
nucho 0:2e2f3b389d8a 268 }