Test program for TM1640 LED controller library. Initial version

Dependencies:   TM1640 mbed

See here for more information.

Committer:
wim
Date:
Thu Jan 28 19:27:15 2016 +0000
Revision:
0:8b464b34f744
Test program for TM1640 LED controller library; Initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:8b464b34f744 1 /* mbed TM1640 Test program, for TM1640 LED controller
wim 0:8b464b34f744 2 * Copyright (c) 2016, v01: WH, Initial version
wim 0:8b464b34f744 3 *
wim 0:8b464b34f744 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
wim 0:8b464b34f744 5 * of this software and associated documentation files (the "Software"), to deal
wim 0:8b464b34f744 6 * in the Software without restriction, including without limitation the rights
wim 0:8b464b34f744 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wim 0:8b464b34f744 8 * copies of the Software, and to permit persons to whom the Software is
wim 0:8b464b34f744 9 * furnished to do so, subject to the following conditions:
wim 0:8b464b34f744 10 *
wim 0:8b464b34f744 11 * The above copyright notice and this permission notice shall be included in
wim 0:8b464b34f744 12 * all copies or substantial portions of the Software.
wim 0:8b464b34f744 13 *
wim 0:8b464b34f744 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
wim 0:8b464b34f744 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
wim 0:8b464b34f744 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
wim 0:8b464b34f744 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wim 0:8b464b34f744 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
wim 0:8b464b34f744 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
wim 0:8b464b34f744 20 * THE SOFTWARE.
wim 0:8b464b34f744 21 */
wim 0:8b464b34f744 22 #include "mbed.h"
wim 0:8b464b34f744 23 #include "TM1640.h"
wim 0:8b464b34f744 24
wim 0:8b464b34f744 25 #if (LM1640_TEST == 1)
wim 0:8b464b34f744 26 // LM1640 TM1640 Test
wim 0:8b464b34f744 27 #include "Font_7Seg.h"
wim 0:8b464b34f744 28
wim 0:8b464b34f744 29 Serial pc(USBTX, USBRX);
wim 0:8b464b34f744 30 DigitalOut myled(LED1);
wim 0:8b464b34f744 31
wim 0:8b464b34f744 32 // DisplayData_t size is 16 bytes (16 Grids @ 8 Segments)
wim 0:8b464b34f744 33 TM1640::DisplayData_t all_str = {0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF};
wim 0:8b464b34f744 34 TM1640::DisplayData_t cls_str = {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:8b464b34f744 35 TM1640::DisplayData_t hello_str = {C7_H,C7_E, C7_L,C7_L, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:8b464b34f744 36 TM1640::DisplayData_t bye_str = {C7_B,C7_Y, C7_E,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:8b464b34f744 37
wim 0:8b464b34f744 38 //TM1640_LM1640 declaration
wim 0:8b464b34f744 39 TM1640_LM1640 LM1640(p5,p7);
wim 0:8b464b34f744 40
wim 0:8b464b34f744 41
wim 0:8b464b34f744 42 void show_menu() {
wim 0:8b464b34f744 43 // pc.printf("0: Exit\n\r");
wim 0:8b464b34f744 44 pc.printf("1: All\n\r");
wim 0:8b464b34f744 45 pc.printf("2: Show all segs\r\n");
wim 0:8b464b34f744 46 pc.printf("3: Show all chars\n\r");
wim 0:8b464b34f744 47 pc.printf("4: Show all digits\n\r");
wim 0:8b464b34f744 48 pc.printf("5: Show all icons\n\r");
wim 0:8b464b34f744 49 pc.printf("6: Counter\n\r");
wim 0:8b464b34f744 50 pc.printf("7: Bye\n\r");
wim 0:8b464b34f744 51 pc.printf("8: Floats\n\r");
wim 0:8b464b34f744 52 }
wim 0:8b464b34f744 53
wim 0:8b464b34f744 54
wim 0:8b464b34f744 55 char cmd, bits;
wim 0:8b464b34f744 56 int main() {
wim 0:8b464b34f744 57
wim 0:8b464b34f744 58 pc.printf("Hello World\r\n"); //
wim 0:8b464b34f744 59
wim 0:8b464b34f744 60 LM1640.cls();
wim 0:8b464b34f744 61 LM1640.writeData(all_str);
wim 0:8b464b34f744 62 wait(2);
wim 0:8b464b34f744 63 LM1640.setBrightness(TM1640_BRT3);
wim 0:8b464b34f744 64 wait(1);
wim 0:8b464b34f744 65 LM1640.setBrightness(TM1640_BRT0);
wim 0:8b464b34f744 66 wait(1);
wim 0:8b464b34f744 67 LM1640.setBrightness(TM1640_BRT4);
wim 0:8b464b34f744 68
wim 0:8b464b34f744 69 wait(1);
wim 0:8b464b34f744 70 LM1640.cls(true);
wim 0:8b464b34f744 71 LM1640.writeData(hello_str);
wim 0:8b464b34f744 72
wim 0:8b464b34f744 73 char cmd2 = '0';
wim 0:8b464b34f744 74 while (1) {
wim 0:8b464b34f744 75
wim 0:8b464b34f744 76 show_menu();
wim 0:8b464b34f744 77 cmd2 = pc.getc();
wim 0:8b464b34f744 78
wim 0:8b464b34f744 79 switch (cmd2) {
wim 0:8b464b34f744 80 case '1' : {
wim 0:8b464b34f744 81 pc.printf("all\r\n");
wim 0:8b464b34f744 82 LM1640.cls();
wim 0:8b464b34f744 83 LM1640.writeData(all_str);
wim 0:8b464b34f744 84 break;
wim 0:8b464b34f744 85 }
wim 0:8b464b34f744 86
wim 0:8b464b34f744 87 case '2' : {
wim 0:8b464b34f744 88 #if(1)
wim 0:8b464b34f744 89 //test to show all segs
wim 0:8b464b34f744 90 pc.printf("Show all segs\r\n");
wim 0:8b464b34f744 91 wait(1);
wim 0:8b464b34f744 92 LM1640.cls();
wim 0:8b464b34f744 93
wim 0:8b464b34f744 94 for (int i=0; i<TM1640_DISPLAY_MEM; i++) {
wim 0:8b464b34f744 95 for (int bit=0; bit<8; bit++) {
wim 0:8b464b34f744 96 LM1640.cls();
wim 0:8b464b34f744 97
wim 0:8b464b34f744 98 bits = 0x01 << bit;
wim 0:8b464b34f744 99 LM1640.writeData(bits, i);
wim 0:8b464b34f744 100
wim 0:8b464b34f744 101 pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits);
wim 0:8b464b34f744 102 // wait(0.5);
wim 0:8b464b34f744 103 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 104 }
wim 0:8b464b34f744 105 }
wim 0:8b464b34f744 106 pc.printf("\r\nShow all segs done\r\n");
wim 0:8b464b34f744 107 #endif
wim 0:8b464b34f744 108 break;
wim 0:8b464b34f744 109 }
wim 0:8b464b34f744 110
wim 0:8b464b34f744 111 case '3' : {
wim 0:8b464b34f744 112
wim 0:8b464b34f744 113 #if(1)
wim 0:8b464b34f744 114 //test to show all chars
wim 0:8b464b34f744 115 pc.printf("Show all NATO Alpha chars\r\n");
wim 0:8b464b34f744 116
wim 0:8b464b34f744 117 // 01234567
wim 0:8b464b34f744 118 const char NATO[][9] = { {"Alpha "},
wim 0:8b464b34f744 119 {"Bravo "},
wim 0:8b464b34f744 120 {"Charlie "},
wim 0:8b464b34f744 121 {"Delta "},
wim 0:8b464b34f744 122 {"Echo "},
wim 0:8b464b34f744 123 {"Foxtrot "},
wim 0:8b464b34f744 124 {"Golf "},
wim 0:8b464b34f744 125 {"Hotel "},
wim 0:8b464b34f744 126 {"India "},
wim 0:8b464b34f744 127 {"Juliet "},
wim 0:8b464b34f744 128 {"Kilo "},
wim 0:8b464b34f744 129 {"Lima "},
wim 0:8b464b34f744 130 {"Mike "},
wim 0:8b464b34f744 131 {"November"},
wim 0:8b464b34f744 132 {"Oscar "},
wim 0:8b464b34f744 133 {"Papa "},
wim 0:8b464b34f744 134 {"Quebec "},
wim 0:8b464b34f744 135 {"Romeo "},
wim 0:8b464b34f744 136 {"Sierra "},
wim 0:8b464b34f744 137 {"Tango "},
wim 0:8b464b34f744 138 {"Uniform "},
wim 0:8b464b34f744 139 {"Victor "},
wim 0:8b464b34f744 140 {"Whiskey "},
wim 0:8b464b34f744 141 {"X-ray "},
wim 0:8b464b34f744 142 {"Yankee "},
wim 0:8b464b34f744 143 {"Zulu "}
wim 0:8b464b34f744 144 };
wim 0:8b464b34f744 145
wim 0:8b464b34f744 146 LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 147 for (int i=0; i<26; i++) {
wim 0:8b464b34f744 148 LM1640.locate(0);
wim 0:8b464b34f744 149 LM1640.printf("%s", NATO[i]);
wim 0:8b464b34f744 150 wait(0.5);
wim 0:8b464b34f744 151 }
wim 0:8b464b34f744 152 pc.printf("Show all NATO Alpha chars done\r\n");
wim 0:8b464b34f744 153 #endif
wim 0:8b464b34f744 154
wim 0:8b464b34f744 155 #if(0)
wim 0:8b464b34f744 156 //test to show all chars
wim 0:8b464b34f744 157 pc.printf("Show all alpha chars\r\n");
wim 0:8b464b34f744 158 wait(1);
wim 0:8b464b34f744 159 LM1640.cls();
wim 0:8b464b34f744 160
wim 0:8b464b34f744 161 for (int i=0; i<26; i++) {
wim 0:8b464b34f744 162 LM1640.printf("%c", char(i + 'A'));
wim 0:8b464b34f744 163 // LM1640.printf("%c", char(i + 'a'));
wim 0:8b464b34f744 164 wait(0.25);
wim 0:8b464b34f744 165 }
wim 0:8b464b34f744 166 pc.printf("Show all alpha chars done\r\n");
wim 0:8b464b34f744 167 #endif
wim 0:8b464b34f744 168
wim 0:8b464b34f744 169 #if(0)
wim 0:8b464b34f744 170 //test to show all chars
wim 0:8b464b34f744 171 pc.printf("Show all chars\r\n");
wim 0:8b464b34f744 172 wait(1);
wim 0:8b464b34f744 173 LM1640.cls();
wim 0:8b464b34f744 174
wim 0:8b464b34f744 175 for (int i=FONT_7S_START; i<FONT_7S_END; i++) {
wim 0:8b464b34f744 176 LM1640.printf("%c", char(i));
wim 0:8b464b34f744 177 // wait(0.25);
wim 0:8b464b34f744 178 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 179 }
wim 0:8b464b34f744 180 pc.printf("Show all chars done\r\n");
wim 0:8b464b34f744 181 #endif
wim 0:8b464b34f744 182 break;
wim 0:8b464b34f744 183 }
wim 0:8b464b34f744 184 case '4': {
wim 0:8b464b34f744 185 #if(0)
wim 0:8b464b34f744 186 //test to show all digits (base is 10)
wim 0:8b464b34f744 187 pc.printf("Show all digits\r\n");
wim 0:8b464b34f744 188 wait(1);
wim 0:8b464b34f744 189 LM1640.cls();
wim 0:8b464b34f744 190
wim 0:8b464b34f744 191 for (int i=0; i<LM1640_NR_DIGITS; i++) {
wim 0:8b464b34f744 192
wim 0:8b464b34f744 193 for (int cnt=0; cnt<10; cnt++) {
wim 0:8b464b34f744 194 LM1640.locate(i);
wim 0:8b464b34f744 195 LM1640.printf("%0d", cnt);
wim 0:8b464b34f744 196
wim 0:8b464b34f744 197 // wait(0.5);
wim 0:8b464b34f744 198 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 199 }
wim 0:8b464b34f744 200 }
wim 0:8b464b34f744 201 pc.printf("\r\nShow all digits done\r\n");
wim 0:8b464b34f744 202 #endif
wim 0:8b464b34f744 203
wim 0:8b464b34f744 204 #if(1)
wim 0:8b464b34f744 205 //test to show all digits (base is 0x10)
wim 0:8b464b34f744 206 pc.printf("Show all hex digits\r\n");
wim 0:8b464b34f744 207 wait(1);
wim 0:8b464b34f744 208 LM1640.cls();
wim 0:8b464b34f744 209
wim 0:8b464b34f744 210 LM1640.printf("%08x", 0x01234567);
wim 0:8b464b34f744 211 LM1640.printf("%08x", 0x89ABCDEF);
wim 0:8b464b34f744 212 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 213 LM1640.printf("%016x", 0x0);
wim 0:8b464b34f744 214
wim 0:8b464b34f744 215 for (int i=0; i<LM1640_NR_DIGITS; i++) {
wim 0:8b464b34f744 216
wim 0:8b464b34f744 217 for (int cnt=0; cnt<0x10; cnt++) {
wim 0:8b464b34f744 218 LM1640.locate(i);
wim 0:8b464b34f744 219 LM1640.printf("%0x", cnt);
wim 0:8b464b34f744 220
wim 0:8b464b34f744 221 // wait(0.5);
wim 0:8b464b34f744 222 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 223 }
wim 0:8b464b34f744 224 }
wim 0:8b464b34f744 225 pc.printf("\r\nShow all hex digits done\r\n");
wim 0:8b464b34f744 226 #endif
wim 0:8b464b34f744 227 break;
wim 0:8b464b34f744 228 }
wim 0:8b464b34f744 229 case '5': {
wim 0:8b464b34f744 230 #if(1)
wim 0:8b464b34f744 231 //test to show all icons
wim 0:8b464b34f744 232 pc.printf("Show all icons\r\n");
wim 0:8b464b34f744 233 LM1640.cls(true); // Also clear all Icons
wim 0:8b464b34f744 234
wim 0:8b464b34f744 235 float delay=0.1;
wim 0:8b464b34f744 236 // Icons on
wim 0:8b464b34f744 237 LM1640.setIcon(TM1640_LM1640::DP1); wait(delay);
wim 0:8b464b34f744 238 LM1640.setIcon(TM1640_LM1640::DP2); wait(delay);
wim 0:8b464b34f744 239 LM1640.setIcon(TM1640_LM1640::DP3); wait(delay);
wim 0:8b464b34f744 240 LM1640.setIcon(TM1640_LM1640::DP4); wait(delay);
wim 0:8b464b34f744 241 LM1640.setIcon(TM1640_LM1640::DP5); wait(delay);
wim 0:8b464b34f744 242 LM1640.setIcon(TM1640_LM1640::DP6); wait(delay);
wim 0:8b464b34f744 243 LM1640.setIcon(TM1640_LM1640::DP7); wait(delay);
wim 0:8b464b34f744 244 LM1640.setIcon(TM1640_LM1640::DP8); wait(delay);
wim 0:8b464b34f744 245 LM1640.setIcon(TM1640_LM1640::DP9); wait(delay);
wim 0:8b464b34f744 246 LM1640.setIcon(TM1640_LM1640::DP10); wait(delay);
wim 0:8b464b34f744 247 LM1640.setIcon(TM1640_LM1640::DP11); wait(delay);
wim 0:8b464b34f744 248 LM1640.setIcon(TM1640_LM1640::DP12); wait(delay);
wim 0:8b464b34f744 249 LM1640.setIcon(TM1640_LM1640::DP13); wait(delay);
wim 0:8b464b34f744 250 LM1640.setIcon(TM1640_LM1640::DP14); wait(delay);
wim 0:8b464b34f744 251 LM1640.setIcon(TM1640_LM1640::DP15); wait(delay);
wim 0:8b464b34f744 252 LM1640.setIcon(TM1640_LM1640::DP16); wait(delay);
wim 0:8b464b34f744 253
wim 0:8b464b34f744 254 wait(delay);
wim 0:8b464b34f744 255
wim 0:8b464b34f744 256 // Icons off
wim 0:8b464b34f744 257 LM1640.clrIcon(TM1640_LM1640::DP1); wait(delay);
wim 0:8b464b34f744 258 LM1640.clrIcon(TM1640_LM1640::DP2); wait(delay);
wim 0:8b464b34f744 259 LM1640.clrIcon(TM1640_LM1640::DP3); wait(delay);
wim 0:8b464b34f744 260 LM1640.clrIcon(TM1640_LM1640::DP4); wait(delay);
wim 0:8b464b34f744 261 LM1640.clrIcon(TM1640_LM1640::DP5); wait(delay);
wim 0:8b464b34f744 262 LM1640.clrIcon(TM1640_LM1640::DP6); wait(delay);
wim 0:8b464b34f744 263 LM1640.clrIcon(TM1640_LM1640::DP7); wait(delay);
wim 0:8b464b34f744 264 LM1640.clrIcon(TM1640_LM1640::DP8); wait(delay);
wim 0:8b464b34f744 265 LM1640.clrIcon(TM1640_LM1640::DP9); wait(delay);
wim 0:8b464b34f744 266 LM1640.clrIcon(TM1640_LM1640::DP10); wait(delay);
wim 0:8b464b34f744 267 LM1640.clrIcon(TM1640_LM1640::DP11); wait(delay);
wim 0:8b464b34f744 268 LM1640.clrIcon(TM1640_LM1640::DP12); wait(delay);
wim 0:8b464b34f744 269 LM1640.clrIcon(TM1640_LM1640::DP13); wait(delay);
wim 0:8b464b34f744 270 LM1640.clrIcon(TM1640_LM1640::DP14); wait(delay);
wim 0:8b464b34f744 271 LM1640.clrIcon(TM1640_LM1640::DP15); wait(delay);
wim 0:8b464b34f744 272 LM1640.clrIcon(TM1640_LM1640::DP16); wait(delay);
wim 0:8b464b34f744 273 // wait(1);
wim 0:8b464b34f744 274 // LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 275 pc.printf("Show all icons done\r\n");
wim 0:8b464b34f744 276 #endif
wim 0:8b464b34f744 277 break;
wim 0:8b464b34f744 278 }
wim 0:8b464b34f744 279
wim 0:8b464b34f744 280 case '6': {
wim 0:8b464b34f744 281 LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 282
wim 0:8b464b34f744 283 #if(1)
wim 0:8b464b34f744 284 LM1640.locate(0);
wim 0:8b464b34f744 285 LM1640.printf("Counters ");
wim 0:8b464b34f744 286
wim 0:8b464b34f744 287 for (int cnt=0; cnt<=0xFF; cnt++) {
wim 0:8b464b34f744 288 LM1640.locate(10);
wim 0:8b464b34f744 289 LM1640.printf("%02x", cnt);
wim 0:8b464b34f744 290 LM1640.locate(14);
wim 0:8b464b34f744 291 LM1640.printf("%02x", 0xFF - cnt);
wim 0:8b464b34f744 292
wim 0:8b464b34f744 293 wait(0.2);
wim 0:8b464b34f744 294 }
wim 0:8b464b34f744 295 #endif
wim 0:8b464b34f744 296
wim 0:8b464b34f744 297 // LM1640.writeData(hello_str);
wim 0:8b464b34f744 298 // LM1640.printf("hello");
wim 0:8b464b34f744 299
wim 0:8b464b34f744 300 break;
wim 0:8b464b34f744 301 }
wim 0:8b464b34f744 302 case '7': {
wim 0:8b464b34f744 303
wim 0:8b464b34f744 304 LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 305 // LM1640.writeData(bye_str);
wim 0:8b464b34f744 306 LM1640.printf("Bye");
wim 0:8b464b34f744 307
wim 0:8b464b34f744 308 break;
wim 0:8b464b34f744 309 }
wim 0:8b464b34f744 310
wim 0:8b464b34f744 311 case '8': {
wim 0:8b464b34f744 312 LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 313 LM1640.printf("%2.3f", -0.1234); // test decimal point display
wim 0:8b464b34f744 314 wait(0.5);
wim 0:8b464b34f744 315 LM1640.cls(); // clear all, preserve Icons
wim 0:8b464b34f744 316 LM1640.printf("%2.3f", -012.345); // test decimal point display
wim 0:8b464b34f744 317 break;
wim 0:8b464b34f744 318 }
wim 0:8b464b34f744 319
wim 0:8b464b34f744 320 default : {
wim 0:8b464b34f744 321 break;
wim 0:8b464b34f744 322 }
wim 0:8b464b34f744 323
wim 0:8b464b34f744 324 } //switch cmd
wim 0:8b464b34f744 325
wim 0:8b464b34f744 326 myled = !myled;
wim 0:8b464b34f744 327 wait(0.3);
wim 0:8b464b34f744 328 } //while
wim 0:8b464b34f744 329 }
wim 0:8b464b34f744 330 #endif
wim 0:8b464b34f744 331
wim 0:8b464b34f744 332
wim 0:8b464b34f744 333
wim 0:8b464b34f744 334 #if (TM1640_TEST == 1)
wim 0:8b464b34f744 335 // Direct TM1640 Test
wim 0:8b464b34f744 336
wim 0:8b464b34f744 337 Serial pc(USBTX, USBRX);
wim 0:8b464b34f744 338 DigitalOut myled(LED1);
wim 0:8b464b34f744 339
wim 0:8b464b34f744 340 // DisplayData_t size is 16 bytes (16 Grids @ 8 Segments)
wim 0:8b464b34f744 341 TM1640::DisplayData_t all_str = {0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF, 0xFF,0xFF};
wim 0:8b464b34f744 342 TM1640::DisplayData_t cls_str = {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:8b464b34f744 343
wim 0:8b464b34f744 344 TM1640 TM1640(p5,p7);
wim 0:8b464b34f744 345
wim 0:8b464b34f744 346 char cmd, bits;
wim 0:8b464b34f744 347 int main() {
wim 0:8b464b34f744 348
wim 0:8b464b34f744 349 pc.printf("Hello World\r\n"); //
wim 0:8b464b34f744 350
wim 0:8b464b34f744 351 TM1640.cls();
wim 0:8b464b34f744 352 TM1640.writeData(all_str);
wim 0:8b464b34f744 353 wait(2);
wim 0:8b464b34f744 354 TM1640.setBrightness(TM1640_BRT3);
wim 0:8b464b34f744 355 wait(1);
wim 0:8b464b34f744 356 TM1640.setBrightness(TM1640_BRT0);
wim 0:8b464b34f744 357 wait(1);
wim 0:8b464b34f744 358 TM1640.setBrightness(TM1640_BRT4);
wim 0:8b464b34f744 359
wim 0:8b464b34f744 360 while (1) {
wim 0:8b464b34f744 361
wim 0:8b464b34f744 362 cmd = pc.getc();
wim 0:8b464b34f744 363
wim 0:8b464b34f744 364 switch cmd {
wim 0:8b464b34f744 365 case '1' :
wim 0:8b464b34f744 366 TM1640.cls();
wim 0:8b464b34f744 367 TM1640.writeData(all_str);
wim 0:8b464b34f744 368 break;
wim 0:8b464b34f744 369
wim 0:8b464b34f744 370 case '2' :
wim 0:8b464b34f744 371 TM1640.cls();
wim 0:8b464b34f744 372 TM1640.writeData(cls_str);
wim 0:8b464b34f744 373 break;
wim 0:8b464b34f744 374
wim 0:8b464b34f744 375 case '3' :
wim 0:8b464b34f744 376
wim 0:8b464b34f744 377 #if(1)
wim 0:8b464b34f744 378 //test to show all segs
wim 0:8b464b34f744 379 pc.printf("Show all segs\r\n");
wim 0:8b464b34f744 380 wait(1);
wim 0:8b464b34f744 381 TM1640.cls();
wim 0:8b464b34f744 382
wim 0:8b464b34f744 383 for (int i=0; i<TM1640_DISPLAY_MEM; i++) {
wim 0:8b464b34f744 384 for (int bit=0; bit<8; bit++) {
wim 0:8b464b34f744 385 TM1640.cls();
wim 0:8b464b34f744 386
wim 0:8b464b34f744 387 bits = 0x01 << bit;
wim 0:8b464b34f744 388 TM1640.writeData(bits, i);
wim 0:8b464b34f744 389
wim 0:8b464b34f744 390 pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits);
wim 0:8b464b34f744 391 // wait(0.5);
wim 0:8b464b34f744 392 cmd = pc.getc(); // wait for key
wim 0:8b464b34f744 393 }
wim 0:8b464b34f744 394 }
wim 0:8b464b34f744 395 pc.printf("Show all segs done\r\n");
wim 0:8b464b34f744 396 #endif
wim 0:8b464b34f744 397 break;
wim 0:8b464b34f744 398
wim 0:8b464b34f744 399 case '4' :
wim 0:8b464b34f744 400 TM1640.cls();
wim 0:8b464b34f744 401 // TM1640.writeData(hello_str);
wim 0:8b464b34f744 402 break;
wim 0:8b464b34f744 403
wim 0:8b464b34f744 404 default :
wim 0:8b464b34f744 405 break;
wim 0:8b464b34f744 406
wim 0:8b464b34f744 407 } //switch cmd
wim 0:8b464b34f744 408
wim 0:8b464b34f744 409 myled = !myled;
wim 0:8b464b34f744 410 wait(0.3);
wim 0:8b464b34f744 411 } //while
wim 0:8b464b34f744 412 }
wim 0:8b464b34f744 413 #endif