Yoshiyuki Uehara / Mbed 2 deprecated Maple

Dependencies:   mbed

Committer:
uehara00
Date:
Sun Oct 30 21:20:23 2011 +0000
Revision:
3:eec13a411e94
OLED(MARY-OB) drivers and demonstrations are added.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uehara00 3:eec13a411e94 1 //copyright 2011 Uehara Yoshiyuki
uehara00 3:eec13a411e94 2 //====================================================================
uehara00 3:eec13a411e94 3 //The author provide the programs without any guarantees or warranty.
uehara00 3:eec13a411e94 4 //The author is not responsible for any damage or losses of any kind
uehara00 3:eec13a411e94 5 //caused by using or misusing of the programs.
uehara00 3:eec13a411e94 6 //The author is under no obligation to provide support, service,
uehara00 3:eec13a411e94 7 //corrections, or upgrades to the programs.
uehara00 3:eec13a411e94 8 //====================================================================
uehara00 3:eec13a411e94 9 // MAPLE board[MARM01-BASE]
uehara00 3:eec13a411e94 10 // main
uehara00 3:eec13a411e94 11 #include "Maple_test.h"
uehara00 3:eec13a411e94 12 #include "Maple_console.h"
uehara00 3:eec13a411e94 13 #include "Maple_OLED.h"
uehara00 3:eec13a411e94 14 #include "Maple_LCD.h"
uehara00 3:eec13a411e94 15 #include "Maple_RTC.h"
uehara00 3:eec13a411e94 16 #include "Maple_I2C.h"
uehara00 3:eec13a411e94 17 #include "Maple.h"
uehara00 3:eec13a411e94 18 #include "mbed.h"
uehara00 3:eec13a411e94 19
uehara00 3:eec13a411e94 20 // global variables
uehara00 3:eec13a411e94 21 extern int console_mode;
uehara00 3:eec13a411e94 22 extern int console_cursor;
uehara00 3:eec13a411e94 23 extern int console_display;
uehara00 3:eec13a411e94 24 extern int test_mode;
uehara00 3:eec13a411e94 25 int test_choice;
uehara00 3:eec13a411e94 26 int test_char_base;
uehara00 3:eec13a411e94 27 int test_color[6];
uehara00 3:eec13a411e94 28 int test_color_cursor;
uehara00 3:eec13a411e94 29
uehara00 3:eec13a411e94 30 // test
uehara00 3:eec13a411e94 31 // display menu
uehara00 3:eec13a411e94 32 void display_test(char row0[], char row1[], int &cursor_r, int &cursor_c) {
uehara00 3:eec13a411e94 33 const int position_r[CURSOR_TEST_SIZE] = { 0};
uehara00 3:eec13a411e94 34 const int position_c[CURSOR_TEST_SIZE] = { 0};
uehara00 3:eec13a411e94 35 const char select_t[9][17] = {
uehara00 3:eec13a411e94 36 "(select Up/Down)",
uehara00 3:eec13a411e94 37 " LCD all-font ",
uehara00 3:eec13a411e94 38 " LCD shift-R/L ",
uehara00 3:eec13a411e94 39 " RTC raw-read ",
uehara00 3:eec13a411e94 40 " OLED color 1 ",
uehara00 3:eec13a411e94 41 " OLED color 2a ",
uehara00 3:eec13a411e94 42 " OLED color 2b ",
uehara00 3:eec13a411e94 43 " OLED color 2c ",
uehara00 3:eec13a411e94 44 " OLED color font",
uehara00 3:eec13a411e94 45 };
uehara00 3:eec13a411e94 46 char d[17], s[3];
uehara00 3:eec13a411e94 47
uehara00 3:eec13a411e94 48 switch(test_mode) {
uehara00 3:eec13a411e94 49 case TEST_FONT:
uehara00 3:eec13a411e94 50 console_display = DISPLAY_OFF;
uehara00 3:eec13a411e94 51 break;
uehara00 3:eec13a411e94 52
uehara00 3:eec13a411e94 53 case TEST_SHIFT:
uehara00 3:eec13a411e94 54 console_display = DISPLAY_OFF;
uehara00 3:eec13a411e94 55 break;
uehara00 3:eec13a411e94 56
uehara00 3:eec13a411e94 57 case TEST_RTCRAW:
uehara00 3:eec13a411e94 58 LCD_return_home();
uehara00 3:eec13a411e94 59 console_display = DISPLAY_ON;
uehara00 3:eec13a411e94 60 i2c_RTC_read(RTC_REG_CONTROL1, d, 16);
uehara00 3:eec13a411e94 61 for(int i = 0; i < 8; ++i) {
uehara00 3:eec13a411e94 62 copy_string(row0, i * 2, 2, int_to_hex2(d[i], s));
uehara00 3:eec13a411e94 63 row0[16] = '\0';
uehara00 3:eec13a411e94 64 }
uehara00 3:eec13a411e94 65 for(int i = 0; i < 8; ++i) {
uehara00 3:eec13a411e94 66 copy_string(row1, i * 2, 2, int_to_hex2(d[i + 8], s));
uehara00 3:eec13a411e94 67 row1[16] = '\0';
uehara00 3:eec13a411e94 68 }
uehara00 3:eec13a411e94 69 break;
uehara00 3:eec13a411e94 70
uehara00 3:eec13a411e94 71 case TEST_OLEDCF:
uehara00 3:eec13a411e94 72 LCD_return_home();
uehara00 3:eec13a411e94 73 console_display = DISPLAY_ON;
uehara00 3:eec13a411e94 74 copy_string(row0, 0, 17, ">OLED color font");
uehara00 3:eec13a411e94 75 copy_string(row1, 0, 17, "exit<B> test");
uehara00 3:eec13a411e94 76 break;
uehara00 3:eec13a411e94 77
uehara00 3:eec13a411e94 78 default:
uehara00 3:eec13a411e94 79 LCD_return_home();
uehara00 3:eec13a411e94 80 console_display = DISPLAY_ON;
uehara00 3:eec13a411e94 81 copy_string(row0, 0, 17, select_t[test_choice]);
uehara00 3:eec13a411e94 82 copy_string(row1, 0, 17, "exec<B> test");
uehara00 3:eec13a411e94 83 }
uehara00 3:eec13a411e94 84 cursor_r = position_r[console_cursor];
uehara00 3:eec13a411e94 85 cursor_c = position_c[console_cursor];
uehara00 3:eec13a411e94 86 }
uehara00 3:eec13a411e94 87
uehara00 3:eec13a411e94 88 // enter mode test
uehara00 3:eec13a411e94 89 void enter_mode_test() {
uehara00 3:eec13a411e94 90 console_mode = MODE_TEST;
uehara00 3:eec13a411e94 91 console_cursor = CURSOR_TEST_INIT;
uehara00 3:eec13a411e94 92 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 93 test_choice = TEST_HOME;
uehara00 3:eec13a411e94 94 }
uehara00 3:eec13a411e94 95
uehara00 3:eec13a411e94 96 // function select
uehara00 3:eec13a411e94 97 void test_function() {
uehara00 3:eec13a411e94 98 switch(test_choice) {
uehara00 3:eec13a411e94 99 case TEST_FONT:
uehara00 3:eec13a411e94 100 if(test_mode == TEST_FONT) {
uehara00 3:eec13a411e94 101 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 102 }
uehara00 3:eec13a411e94 103 else {
uehara00 3:eec13a411e94 104 test_mode = TEST_FONT;
uehara00 3:eec13a411e94 105 test_char_base = 0x20;
uehara00 3:eec13a411e94 106 LCD_print_n_char(test_char_base, 0x10);
uehara00 3:eec13a411e94 107 }
uehara00 3:eec13a411e94 108 break;
uehara00 3:eec13a411e94 109
uehara00 3:eec13a411e94 110 case TEST_SHIFT:
uehara00 3:eec13a411e94 111 if(test_mode == TEST_SHIFT) {
uehara00 3:eec13a411e94 112 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 113 }
uehara00 3:eec13a411e94 114 else {
uehara00 3:eec13a411e94 115 test_mode = TEST_SHIFT;
uehara00 3:eec13a411e94 116 test_char_base = 0x40;
uehara00 3:eec13a411e94 117 LCD_print_n_char(test_char_base, 0x20);
uehara00 3:eec13a411e94 118 }
uehara00 3:eec13a411e94 119 break;
uehara00 3:eec13a411e94 120
uehara00 3:eec13a411e94 121 case TEST_RTCRAW:
uehara00 3:eec13a411e94 122 if(test_mode == TEST_RTCRAW) {
uehara00 3:eec13a411e94 123 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 124 }
uehara00 3:eec13a411e94 125 else {
uehara00 3:eec13a411e94 126 test_mode = TEST_RTCRAW;
uehara00 3:eec13a411e94 127 }
uehara00 3:eec13a411e94 128 break;
uehara00 3:eec13a411e94 129
uehara00 3:eec13a411e94 130 case TEST_OLEDC1:
uehara00 3:eec13a411e94 131 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 132 OLED_test_c1();
uehara00 3:eec13a411e94 133 break;
uehara00 3:eec13a411e94 134
uehara00 3:eec13a411e94 135 case TEST_OLEDC2A:
uehara00 3:eec13a411e94 136 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 137 OLED_test_c2a();
uehara00 3:eec13a411e94 138 break;
uehara00 3:eec13a411e94 139
uehara00 3:eec13a411e94 140 case TEST_OLEDC2B:
uehara00 3:eec13a411e94 141 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 142 OLED_test_c2b();
uehara00 3:eec13a411e94 143 break;
uehara00 3:eec13a411e94 144
uehara00 3:eec13a411e94 145 case TEST_OLEDC2C:
uehara00 3:eec13a411e94 146 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 147 OLED_test_c2c();
uehara00 3:eec13a411e94 148 break;
uehara00 3:eec13a411e94 149
uehara00 3:eec13a411e94 150 case TEST_OLEDCF:
uehara00 3:eec13a411e94 151 if(test_mode == TEST_OLEDCF) {
uehara00 3:eec13a411e94 152 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 153 }
uehara00 3:eec13a411e94 154 else {
uehara00 3:eec13a411e94 155 test_mode = TEST_OLEDCF;
uehara00 3:eec13a411e94 156 test_color_cursor = 0;
uehara00 3:eec13a411e94 157 test_color[0] = 0x30;
uehara00 3:eec13a411e94 158 test_color[1] = 0x30;
uehara00 3:eec13a411e94 159 test_color[2] = 0x30;
uehara00 3:eec13a411e94 160 test_color[3] = 0x10;
uehara00 3:eec13a411e94 161 test_color[4] = 0x10;
uehara00 3:eec13a411e94 162 test_color[5] = 0x10;
uehara00 3:eec13a411e94 163 OLED_test_cf();
uehara00 3:eec13a411e94 164 }
uehara00 3:eec13a411e94 165 break;
uehara00 3:eec13a411e94 166
uehara00 3:eec13a411e94 167 default:
uehara00 3:eec13a411e94 168 button_exit();
uehara00 3:eec13a411e94 169 }
uehara00 3:eec13a411e94 170 }
uehara00 3:eec13a411e94 171
uehara00 3:eec13a411e94 172 // left, right
uehara00 3:eec13a411e94 173 void cursor_move_test(int flag) {
uehara00 3:eec13a411e94 174 switch(test_mode) {
uehara00 3:eec13a411e94 175 case TEST_SHIFT:
uehara00 3:eec13a411e94 176 LCD_cursor_or_display_shift(1, flag?0:1);
uehara00 3:eec13a411e94 177 break;
uehara00 3:eec13a411e94 178
uehara00 3:eec13a411e94 179 case TEST_OLEDCF:
uehara00 3:eec13a411e94 180 switch(flag) {
uehara00 3:eec13a411e94 181 case 0: // move left .. decrement
uehara00 3:eec13a411e94 182 if(test_color_cursor == 0) {
uehara00 3:eec13a411e94 183 test_color_cursor = 6;
uehara00 3:eec13a411e94 184 }
uehara00 3:eec13a411e94 185 --test_color_cursor;
uehara00 3:eec13a411e94 186 break;
uehara00 3:eec13a411e94 187 default: // move right .. increment
uehara00 3:eec13a411e94 188 ++test_color_cursor;
uehara00 3:eec13a411e94 189 if(test_color_cursor >= 6) {
uehara00 3:eec13a411e94 190 test_color_cursor = 0;
uehara00 3:eec13a411e94 191 }
uehara00 3:eec13a411e94 192 }
uehara00 3:eec13a411e94 193 OLED_test_cf();
uehara00 3:eec13a411e94 194 break;
uehara00 3:eec13a411e94 195
uehara00 3:eec13a411e94 196 default:
uehara00 3:eec13a411e94 197 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 198 }
uehara00 3:eec13a411e94 199 }
uehara00 3:eec13a411e94 200
uehara00 3:eec13a411e94 201 // increment, decrement
uehara00 3:eec13a411e94 202 void button_xxcrement_test(int flag) {
uehara00 3:eec13a411e94 203 switch(test_mode) {
uehara00 3:eec13a411e94 204 case TEST_HOME:
uehara00 3:eec13a411e94 205 switch(flag) {
uehara00 3:eec13a411e94 206 case 0:
uehara00 3:eec13a411e94 207 ++test_choice;
uehara00 3:eec13a411e94 208 if(test_choice == TEST_SIZE) {
uehara00 3:eec13a411e94 209 test_choice = 0;
uehara00 3:eec13a411e94 210 }
uehara00 3:eec13a411e94 211 break;
uehara00 3:eec13a411e94 212 default:
uehara00 3:eec13a411e94 213 if(test_choice == 0) {
uehara00 3:eec13a411e94 214 test_choice = TEST_SIZE;
uehara00 3:eec13a411e94 215 }
uehara00 3:eec13a411e94 216 --test_choice;
uehara00 3:eec13a411e94 217 }
uehara00 3:eec13a411e94 218 break;
uehara00 3:eec13a411e94 219
uehara00 3:eec13a411e94 220 case TEST_FONT:
uehara00 3:eec13a411e94 221 switch(flag) {
uehara00 3:eec13a411e94 222 case 0:
uehara00 3:eec13a411e94 223 if(test_char_base > 0x00) {
uehara00 3:eec13a411e94 224 test_char_base -= 0x20;
uehara00 3:eec13a411e94 225 }
uehara00 3:eec13a411e94 226 break;
uehara00 3:eec13a411e94 227 default:
uehara00 3:eec13a411e94 228 if(test_char_base < 0xe0) {
uehara00 3:eec13a411e94 229 test_char_base += 0x20;
uehara00 3:eec13a411e94 230 }
uehara00 3:eec13a411e94 231 }
uehara00 3:eec13a411e94 232 LCD_print_n_char(test_char_base, 0x10);
uehara00 3:eec13a411e94 233 break;
uehara00 3:eec13a411e94 234
uehara00 3:eec13a411e94 235 case TEST_SHIFT:
uehara00 3:eec13a411e94 236 switch(flag) {
uehara00 3:eec13a411e94 237 case 0:
uehara00 3:eec13a411e94 238 if(test_char_base > 0x00) {
uehara00 3:eec13a411e94 239 test_char_base -= 0x40;
uehara00 3:eec13a411e94 240 }
uehara00 3:eec13a411e94 241 break;
uehara00 3:eec13a411e94 242 default:
uehara00 3:eec13a411e94 243 if(test_char_base < 0xc0) {
uehara00 3:eec13a411e94 244 test_char_base += 0x40;
uehara00 3:eec13a411e94 245 }
uehara00 3:eec13a411e94 246 }
uehara00 3:eec13a411e94 247 LCD_print_n_char(test_char_base, 0x20);
uehara00 3:eec13a411e94 248 break;
uehara00 3:eec13a411e94 249
uehara00 3:eec13a411e94 250 case TEST_OLEDCF:
uehara00 3:eec13a411e94 251 switch(flag) {
uehara00 3:eec13a411e94 252 case 0:
uehara00 3:eec13a411e94 253 if(test_color[test_color_cursor] > 0) {
uehara00 3:eec13a411e94 254 --test_color[test_color_cursor];
uehara00 3:eec13a411e94 255 }
uehara00 3:eec13a411e94 256 break;
uehara00 3:eec13a411e94 257 default:
uehara00 3:eec13a411e94 258 if(test_color[test_color_cursor] < 0x3f) {
uehara00 3:eec13a411e94 259 ++test_color[test_color_cursor];
uehara00 3:eec13a411e94 260 }
uehara00 3:eec13a411e94 261 }
uehara00 3:eec13a411e94 262 OLED_test_cf();
uehara00 3:eec13a411e94 263 break;
uehara00 3:eec13a411e94 264
uehara00 3:eec13a411e94 265 default:
uehara00 3:eec13a411e94 266 test_mode = TEST_HOME;
uehara00 3:eec13a411e94 267 }
uehara00 3:eec13a411e94 268 }
uehara00 3:eec13a411e94 269
uehara00 3:eec13a411e94 270 // print n characters in 2 lines
uehara00 3:eec13a411e94 271 static void LCD_print_n_char(char base, int length) {
uehara00 3:eec13a411e94 272 LCD_locate(0, 0);
uehara00 3:eec13a411e94 273 for(int i = 0; i < length; ++i) {
uehara00 3:eec13a411e94 274 LCD_print_char(base + i);
uehara00 3:eec13a411e94 275 }
uehara00 3:eec13a411e94 276 LCD_locate(1, 0);
uehara00 3:eec13a411e94 277 for(int i = length; i < length * 2; ++i) {
uehara00 3:eec13a411e94 278 LCD_print_char(base + i);
uehara00 3:eec13a411e94 279 }
uehara00 3:eec13a411e94 280 }
uehara00 3:eec13a411e94 281
uehara00 3:eec13a411e94 282 // OLED test: color variation 1
uehara00 3:eec13a411e94 283 void OLED_test_c1() {
uehara00 3:eec13a411e94 284 int a, b, c;
uehara00 3:eec13a411e94 285
uehara00 3:eec13a411e94 286 OLED_cs_assert(1);
uehara00 3:eec13a411e94 287 OLED_cs_assert(2);
uehara00 3:eec13a411e94 288 for(b = 0; b < 0x40; ++b) {
uehara00 3:eec13a411e94 289 for(c = 0; c < 0x40; ++c) {
uehara00 3:eec13a411e94 290 OLED_set_color(1, 0, b, c);
uehara00 3:eec13a411e94 291 OLED_fill_rectangle(1, c, 1, b, 1);
uehara00 3:eec13a411e94 292 }
uehara00 3:eec13a411e94 293 }
uehara00 3:eec13a411e94 294 for(c = 0; c < 0x40; ++c) {
uehara00 3:eec13a411e94 295 for(a = 0; a < 0x40; ++a) {
uehara00 3:eec13a411e94 296 OLED_set_color(1, a, 0, c);
uehara00 3:eec13a411e94 297 OLED_fill_rectangle(1, 0x40 + a, 1, c, 1);
uehara00 3:eec13a411e94 298 }
uehara00 3:eec13a411e94 299 }
uehara00 3:eec13a411e94 300 for(a = 0; a < 0x40; ++a) {
uehara00 3:eec13a411e94 301 for(b = 0; b < 0x40; ++b) {
uehara00 3:eec13a411e94 302 OLED_set_color(1, a, b, 0);
uehara00 3:eec13a411e94 303 OLED_fill_rectangle(1, b, 1, 0x40 + a, 1);
uehara00 3:eec13a411e94 304 }
uehara00 3:eec13a411e94 305 }
uehara00 3:eec13a411e94 306 for(int i = 0; i < 0x40; ++i) {
uehara00 3:eec13a411e94 307 OLED_set_color(1, i, 0, 0);
uehara00 3:eec13a411e94 308 OLED_fill_rectangle(1, 0x40 + i, 1, 0x40, 0x10);
uehara00 3:eec13a411e94 309 OLED_set_color(1, 0, i, 0);
uehara00 3:eec13a411e94 310 OLED_fill_rectangle(1, 0x40 + i, 1, 0x50, 0x10);
uehara00 3:eec13a411e94 311 OLED_set_color(1, 0, 0, i);
uehara00 3:eec13a411e94 312 OLED_fill_rectangle(1, 0x40 + i, 1, 0x60, 0x10);
uehara00 3:eec13a411e94 313 OLED_set_color(1, i, i, i);
uehara00 3:eec13a411e94 314 OLED_fill_rectangle(1, 0x40 + i, 1, 0x70, 0x10);
uehara00 3:eec13a411e94 315 }
uehara00 3:eec13a411e94 316 OLED_cs_negate();
uehara00 3:eec13a411e94 317 }
uehara00 3:eec13a411e94 318
uehara00 3:eec13a411e94 319 // OLED test: color variation 2a
uehara00 3:eec13a411e94 320 void OLED_test_c2a() {
uehara00 3:eec13a411e94 321 OLED_cs_assert(1);
uehara00 3:eec13a411e94 322 OLED_cs_assert(2);
uehara00 3:eec13a411e94 323 for(int i = 0; i < 0x80; ++i) {
uehara00 3:eec13a411e94 324 for(int j = 0; j < 0x80; ++j) {
uehara00 3:eec13a411e94 325 OLED_set_color(1, (j / 0x20) * 0x10 + (i / 0x20) * 0x04, (i % 0x20) * 2, (j % 0x20) * 2);
uehara00 3:eec13a411e94 326 OLED_fill_rectangle(1, i, 1, j, 1);
uehara00 3:eec13a411e94 327 }
uehara00 3:eec13a411e94 328 }
uehara00 3:eec13a411e94 329 OLED_cs_negate();
uehara00 3:eec13a411e94 330 }
uehara00 3:eec13a411e94 331
uehara00 3:eec13a411e94 332 // OLED test: color variation 2b
uehara00 3:eec13a411e94 333 void OLED_test_c2b() {
uehara00 3:eec13a411e94 334 OLED_cs_assert(1);
uehara00 3:eec13a411e94 335 OLED_cs_assert(2);
uehara00 3:eec13a411e94 336 for(int i = 0; i < 0x80; ++i) {
uehara00 3:eec13a411e94 337 for(int j = 0; j < 0x80; ++j) {
uehara00 3:eec13a411e94 338 OLED_set_color(1, (j % 0x20) * 2, (j / 0x20) * 0x10 + (i / 0x20) * 0x04, (i % 0x20) * 2);
uehara00 3:eec13a411e94 339 OLED_fill_rectangle(1, i, 1, j, 1);
uehara00 3:eec13a411e94 340 }
uehara00 3:eec13a411e94 341 }
uehara00 3:eec13a411e94 342 OLED_cs_negate();
uehara00 3:eec13a411e94 343 }
uehara00 3:eec13a411e94 344
uehara00 3:eec13a411e94 345 // OLED test: color variation 2c
uehara00 3:eec13a411e94 346 void OLED_test_c2c() {
uehara00 3:eec13a411e94 347 OLED_cs_assert(1);
uehara00 3:eec13a411e94 348 OLED_cs_assert(2);
uehara00 3:eec13a411e94 349 for(int i = 0; i < 0x80; ++i) {
uehara00 3:eec13a411e94 350 for(int j = 0; j < 0x80; ++j) {
uehara00 3:eec13a411e94 351 OLED_set_color(1, (i % 0x20) * 2, (j % 0x20) * 2, (j / 0x20) * 0x10 + (i / 0x20) * 0x04);
uehara00 3:eec13a411e94 352 OLED_fill_rectangle(1, i, 1, j, 1);
uehara00 3:eec13a411e94 353 }
uehara00 3:eec13a411e94 354 }
uehara00 3:eec13a411e94 355 OLED_cs_negate();
uehara00 3:eec13a411e94 356 }
uehara00 3:eec13a411e94 357
uehara00 3:eec13a411e94 358 // OLED test: color variation 1
uehara00 3:eec13a411e94 359 void OLED_test_cf() {
uehara00 3:eec13a411e94 360 OLED_cs_assert(1);
uehara00 3:eec13a411e94 361 OLED_cs_assert(2);
uehara00 3:eec13a411e94 362
uehara00 3:eec13a411e94 363 OLED_set_color(0, 0, 0, 0);
uehara00 3:eec13a411e94 364 OLED_clear_screen(0);
uehara00 3:eec13a411e94 365
uehara00 3:eec13a411e94 366 for(int i = 0; i < 6; ++i) {
uehara00 3:eec13a411e94 367 if(i < 3) {
uehara00 3:eec13a411e94 368 OLED_set_cursor( i * 0x10, 0x71);
uehara00 3:eec13a411e94 369 }
uehara00 3:eec13a411e94 370 else {
uehara00 3:eec13a411e94 371 OLED_set_cursor( i * 0x10 + 0x10, 0x71);
uehara00 3:eec13a411e94 372 }
uehara00 3:eec13a411e94 373 if(i == test_color_cursor) {
uehara00 3:eec13a411e94 374 OLED_set_color(1, 0, 0, 0);
uehara00 3:eec13a411e94 375 OLED_set_color(0, 0x3f, 0x3f, 0x3f);
uehara00 3:eec13a411e94 376 }
uehara00 3:eec13a411e94 377 else {
uehara00 3:eec13a411e94 378 OLED_set_color(0, 0, 0, 0);
uehara00 3:eec13a411e94 379 OLED_set_color(1, 0x3f, 0x3f, 0x3f);
uehara00 3:eec13a411e94 380 }
uehara00 3:eec13a411e94 381 OLED_print_hex(test_color[i]);
uehara00 3:eec13a411e94 382 }
uehara00 3:eec13a411e94 383
uehara00 3:eec13a411e94 384 OLED_set_color(1, test_color[0], test_color[1], test_color[2]);
uehara00 3:eec13a411e94 385 OLED_fill_rectangle(1, 0x00, 0x30, 0x40, 0x10);
uehara00 3:eec13a411e94 386 OLED_set_color(1, test_color[0], 0, 0);
uehara00 3:eec13a411e94 387 OLED_fill_rectangle(1, 0x00, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 388 OLED_set_color(1, 0, test_color[1], 0);
uehara00 3:eec13a411e94 389 OLED_fill_rectangle(1, 0x10, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 390 OLED_set_color(1, 0, 0, test_color[2]);
uehara00 3:eec13a411e94 391 OLED_fill_rectangle(1, 0x20, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 392
uehara00 3:eec13a411e94 393 OLED_set_color(0, test_color[3], test_color[4], test_color[5]);
uehara00 3:eec13a411e94 394 OLED_fill_rectangle(0, 0x40, 0x30, 0x40, 0x10);
uehara00 3:eec13a411e94 395 OLED_set_color(0, test_color[3], 0, 0);
uehara00 3:eec13a411e94 396 OLED_fill_rectangle(0, 0x40, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 397 OLED_set_color(0, 0, test_color[4], 0);
uehara00 3:eec13a411e94 398 OLED_fill_rectangle(0, 0x50, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 399 OLED_set_color(0, 0, 0, test_color[5]);
uehara00 3:eec13a411e94 400 OLED_fill_rectangle(0, 0x60, 0x10, 0x50, 0x20);
uehara00 3:eec13a411e94 401
uehara00 3:eec13a411e94 402 OLED_set_color(1, test_color[0], test_color[1], test_color[2]);
uehara00 3:eec13a411e94 403 OLED_set_color(0, test_color[3], test_color[4], test_color[5]);
uehara00 3:eec13a411e94 404 OLED_set_cursor(0, 0);
uehara00 3:eec13a411e94 405 for(int i = 0x20; i < 0x80; i += 0x10) {
uehara00 3:eec13a411e94 406 for(char ch = i; ch < i + 0x10; ++ch) {
uehara00 3:eec13a411e94 407 OLED_print_character(ch);
uehara00 3:eec13a411e94 408 }
uehara00 3:eec13a411e94 409 OLED_print_string("\r\n");
uehara00 3:eec13a411e94 410 }
uehara00 3:eec13a411e94 411 OLED_cs_negate();
uehara00 3:eec13a411e94 412 }