Test program for TM1638 LED controller. Supports LED&KEY, QYF-TM1638 and JY-LKM1638 module.

Dependencies:   TM1638 mbed

See here for more information.

Committer:
wim
Date:
Sat Jan 09 14:34:16 2016 +0000
Revision:
1:12dadbc0017d
Parent:
0:e7bc81df3e38
Child:
2:d6720abfe574
Test program for TM1638 LED controller. Supports LED&KEY module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 1:12dadbc0017d 1 /* mbed TM1638 Test program, for TM1638 LED controller
wim 0:e7bc81df3e38 2 * Copyright (c) 2015, v01: WH, Initial version
wim 0:e7bc81df3e38 3 *
wim 0:e7bc81df3e38 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
wim 0:e7bc81df3e38 5 * of this software and associated documentation files (the "Software"), to deal
wim 0:e7bc81df3e38 6 * in the Software without restriction, including without limitation the rights
wim 0:e7bc81df3e38 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wim 0:e7bc81df3e38 8 * copies of the Software, and to permit persons to whom the Software is
wim 0:e7bc81df3e38 9 * furnished to do so, subject to the following conditions:
wim 0:e7bc81df3e38 10 *
wim 0:e7bc81df3e38 11 * The above copyright notice and this permission notice shall be included in
wim 0:e7bc81df3e38 12 * all copies or substantial portions of the Software.
wim 0:e7bc81df3e38 13 *
wim 0:e7bc81df3e38 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
wim 0:e7bc81df3e38 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
wim 0:e7bc81df3e38 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
wim 0:e7bc81df3e38 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wim 0:e7bc81df3e38 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
wim 0:e7bc81df3e38 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
wim 0:e7bc81df3e38 20 * THE SOFTWARE.
wim 0:e7bc81df3e38 21 */
wim 0:e7bc81df3e38 22 #include "mbed.h"
wim 0:e7bc81df3e38 23 #include "TM1638.h"
wim 0:e7bc81df3e38 24
wim 0:e7bc81df3e38 25 #if (LEDKEY8_TEST == 1)
wim 0:e7bc81df3e38 26 // LEDKEY8 TM1638 Test
wim 0:e7bc81df3e38 27 #include "Font_7Seg.h"
wim 0:e7bc81df3e38 28
wim 0:e7bc81df3e38 29 Serial pc(USBTX, USBRX);
wim 0:e7bc81df3e38 30 DigitalOut myled(LED1);
wim 0:e7bc81df3e38 31
wim 0:e7bc81df3e38 32 // DisplayData_t size is 16 bytes (8 Grids @ 10 Segments)
wim 0:e7bc81df3e38 33 TM1638::DisplayData_t all_str = {0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03};
wim 0:e7bc81df3e38 34 TM1638::DisplayData_t cls_str = {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:e7bc81df3e38 35 TM1638::DisplayData_t hello_str = {C7_H,0x00, C7_E,0x00, C7_L,0x00, C7_L,0x00, C7_O,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 1:12dadbc0017d 36 TM1638::DisplayData_t bye_str = {C7_B,0x00, C7_Y,0x00, C7_E,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:e7bc81df3e38 37
wim 0:e7bc81df3e38 38 // KeyData_t size is 3 bytes
wim 0:e7bc81df3e38 39 TM1638::KeyData_t keydata;
wim 0:e7bc81df3e38 40
wim 0:e7bc81df3e38 41 // Switchdata is 1 byte
wim 0:e7bc81df3e38 42 char switchdata;
wim 0:e7bc81df3e38 43
wim 0:e7bc81df3e38 44 //TM1638_LEDKEY8 declaration
wim 0:e7bc81df3e38 45 TM1638_LEDKEY8 LEDKEY8(p5,p6,p7, p8);
wim 0:e7bc81df3e38 46
wim 0:e7bc81df3e38 47 char cmd, bits;
wim 0:e7bc81df3e38 48 int main() {
wim 0:e7bc81df3e38 49
wim 0:e7bc81df3e38 50 pc.printf("Hello World\r\n"); //
wim 0:e7bc81df3e38 51
wim 0:e7bc81df3e38 52 LEDKEY8.cls();
wim 0:e7bc81df3e38 53 LEDKEY8.writeData(all_str);
wim 0:e7bc81df3e38 54 wait(2);
wim 0:e7bc81df3e38 55 LEDKEY8.setBrightness(TM1638_BRT3);
wim 0:e7bc81df3e38 56 wait(1);
wim 0:e7bc81df3e38 57 LEDKEY8.setBrightness(TM1638_BRT0);
wim 0:e7bc81df3e38 58 wait(1);
wim 0:e7bc81df3e38 59 LEDKEY8.setBrightness(TM1638_BRT4);
wim 0:e7bc81df3e38 60
wim 0:e7bc81df3e38 61 wait(1);
wim 0:e7bc81df3e38 62 LEDKEY8.cls(true);
wim 0:e7bc81df3e38 63 LEDKEY8.writeData(hello_str);
wim 0:e7bc81df3e38 64
wim 0:e7bc81df3e38 65 while (1) {
wim 0:e7bc81df3e38 66
wim 0:e7bc81df3e38 67 // Check and read keydata
wim 0:e7bc81df3e38 68 if (LEDKEY8.getKeys(&keydata)) {
wim 0:e7bc81df3e38 69 pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]);
wim 0:e7bc81df3e38 70
wim 1:12dadbc0017d 71 if (keydata[LEDKEY8_SW1_IDX] == LEDKEY8_SW1_BIT) { //sw1
wim 0:e7bc81df3e38 72 LEDKEY8.cls();
wim 0:e7bc81df3e38 73 LEDKEY8.writeData(all_str);
wim 0:e7bc81df3e38 74 }
wim 0:e7bc81df3e38 75
wim 1:12dadbc0017d 76 if (keydata[LEDKEY8_SW2_IDX] == LEDKEY8_SW2_BIT) { //sw2
wim 0:e7bc81df3e38 77 LEDKEY8.cls();
wim 0:e7bc81df3e38 78 // LEDKEY8.writeData(hello_str);
wim 0:e7bc81df3e38 79 #if(1)
wim 0:e7bc81df3e38 80 //test to show all segs
wim 0:e7bc81df3e38 81 pc.printf("Show all segs\r\n");
wim 0:e7bc81df3e38 82 wait(1);
wim 0:e7bc81df3e38 83 LEDKEY8.cls();
wim 0:e7bc81df3e38 84
wim 0:e7bc81df3e38 85 for (int i=0; i<TM1638_DISPLAY_MEM; i++) {
wim 0:e7bc81df3e38 86 for (int bit=0; bit<8; bit++) {
wim 0:e7bc81df3e38 87 LEDKEY8.cls();
wim 0:e7bc81df3e38 88
wim 0:e7bc81df3e38 89 bits = 0x01 << bit;
wim 0:e7bc81df3e38 90 LEDKEY8.writeData(i, bits);
wim 0:e7bc81df3e38 91
wim 0:e7bc81df3e38 92 pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits);
wim 0:e7bc81df3e38 93 // wait(0.5);
wim 0:e7bc81df3e38 94 cmd = pc.getc(); // wait for key
wim 0:e7bc81df3e38 95 }
wim 0:e7bc81df3e38 96 }
wim 1:12dadbc0017d 97 pc.printf("\r\nShow all segs done\r\n");
wim 0:e7bc81df3e38 98 #endif
wim 0:e7bc81df3e38 99
wim 0:e7bc81df3e38 100 }
wim 0:e7bc81df3e38 101
wim 1:12dadbc0017d 102 if (keydata[LEDKEY8_SW3_IDX] == LEDKEY8_SW3_BIT) { //sw3
wim 0:e7bc81df3e38 103 // LEDKEY8.cls();
wim 0:e7bc81df3e38 104 // LEDKEY8.writeData(mbed_str);
wim 0:e7bc81df3e38 105
wim 0:e7bc81df3e38 106 #if(0)
wim 0:e7bc81df3e38 107 //test to show all chars
wim 0:e7bc81df3e38 108 pc.printf("Show all chars\r\n");
wim 0:e7bc81df3e38 109 wait(1);
wim 0:e7bc81df3e38 110 LEDKEY8.cls();
wim 0:e7bc81df3e38 111
wim 0:e7bc81df3e38 112 for (int i=0; i<26; i++) {
wim 0:e7bc81df3e38 113 LEDKEY8.writeData(0, FONT_16S[i][0]);
wim 0:e7bc81df3e38 114 LEDKEY8.writeData(1, FONT_16S[i][1]);
wim 0:e7bc81df3e38 115 wait(1);
wim 0:e7bc81df3e38 116 }
wim 0:e7bc81df3e38 117 pc.printf("Show all chars done\r\n");
wim 0:e7bc81df3e38 118 #endif
wim 0:e7bc81df3e38 119
wim 0:e7bc81df3e38 120
wim 0:e7bc81df3e38 121 #if(0)
wim 0:e7bc81df3e38 122 //test to show all digits (base is 10)
wim 0:e7bc81df3e38 123 pc.printf("Show all digits\r\n");
wim 0:e7bc81df3e38 124 wait(1);
wim 0:e7bc81df3e38 125 LEDKEY8.cls();
wim 0:e7bc81df3e38 126
wim 0:e7bc81df3e38 127 int val = 1;
wim 0:e7bc81df3e38 128 for (int i=0; i<LEDKEY8_NR_DIGITS; i++) {
wim 0:e7bc81df3e38 129
wim 0:e7bc81df3e38 130 for (int cnt=0; cnt<10; cnt++) {
wim 0:e7bc81df3e38 131 LEDKEY8.locate(0);
wim 0:e7bc81df3e38 132 LEDKEY8.printf("%07d", (val * cnt));
wim 0:e7bc81df3e38 133
wim 0:e7bc81df3e38 134 // wait(0.5);
wim 0:e7bc81df3e38 135 cmd = pc.getc(); // wait for key
wim 0:e7bc81df3e38 136 }
wim 0:e7bc81df3e38 137 val = val * 10;
wim 0:e7bc81df3e38 138 }
wim 1:12dadbc0017d 139 pc.printf("\r\nShow all digits done\r\n");
wim 0:e7bc81df3e38 140 #endif
wim 0:e7bc81df3e38 141
wim 0:e7bc81df3e38 142 #if(1)
wim 0:e7bc81df3e38 143 //test to show all digits (base is 0x10)
wim 0:e7bc81df3e38 144 pc.printf("Show all hex digits\r\n");
wim 0:e7bc81df3e38 145 wait(1);
wim 0:e7bc81df3e38 146 LEDKEY8.cls();
wim 0:e7bc81df3e38 147
wim 0:e7bc81df3e38 148 LEDKEY8.printf("%08x", 0x012345AB);
wim 0:e7bc81df3e38 149 cmd = pc.getc(); // wait for key
wim 0:e7bc81df3e38 150
wim 0:e7bc81df3e38 151 int val = 1;
wim 0:e7bc81df3e38 152 for (int i=0; i<LEDKEY8_NR_DIGITS; i++) {
wim 0:e7bc81df3e38 153
wim 0:e7bc81df3e38 154 for (int cnt=0; cnt<0x10; cnt++) {
wim 0:e7bc81df3e38 155 LEDKEY8.locate(0);
wim 0:e7bc81df3e38 156 LEDKEY8.printf("%08x", (val * cnt));
wim 0:e7bc81df3e38 157
wim 0:e7bc81df3e38 158 // wait(0.5);
wim 0:e7bc81df3e38 159 cmd = pc.getc(); // wait for key
wim 0:e7bc81df3e38 160 }
wim 0:e7bc81df3e38 161 val = val * 0x10;
wim 0:e7bc81df3e38 162 }
wim 1:12dadbc0017d 163 pc.printf("\r\nShow all hex digits done\r\n");
wim 0:e7bc81df3e38 164 #endif
wim 0:e7bc81df3e38 165 }
wim 1:12dadbc0017d 166
wim 1:12dadbc0017d 167 if (keydata[LEDKEY8_SW4_IDX] == LEDKEY8_SW4_BIT) { //sw4
wim 0:e7bc81df3e38 168 // LEDKEY8.cls();
wim 0:e7bc81df3e38 169 // LEDKEY8.writeData(mbed_str);
wim 0:e7bc81df3e38 170 #if(1)
wim 0:e7bc81df3e38 171 //test to show all icons
wim 0:e7bc81df3e38 172 pc.printf("Show all icons\r\n");
wim 0:e7bc81df3e38 173 LEDKEY8.cls(true); // Also clear all Icons
wim 0:e7bc81df3e38 174
wim 0:e7bc81df3e38 175 float delay=0.1;
wim 0:e7bc81df3e38 176 // Icons on
wim 0:e7bc81df3e38 177 LEDKEY8.setIcon(TM1638_LEDKEY8::LD1); wait(delay);
wim 0:e7bc81df3e38 178 LEDKEY8.setIcon(TM1638_LEDKEY8::LD2); wait(delay);
wim 0:e7bc81df3e38 179 LEDKEY8.setIcon(TM1638_LEDKEY8::LD3); wait(delay);
wim 0:e7bc81df3e38 180 LEDKEY8.setIcon(TM1638_LEDKEY8::LD4); wait(delay);
wim 0:e7bc81df3e38 181 LEDKEY8.setIcon(TM1638_LEDKEY8::LD5); wait(delay);
wim 0:e7bc81df3e38 182 LEDKEY8.setIcon(TM1638_LEDKEY8::LD6); wait(delay);
wim 0:e7bc81df3e38 183 LEDKEY8.setIcon(TM1638_LEDKEY8::LD7); wait(delay);
wim 0:e7bc81df3e38 184 LEDKEY8.setIcon(TM1638_LEDKEY8::LD8); wait(delay);
wim 0:e7bc81df3e38 185
wim 0:e7bc81df3e38 186 wait(delay);
wim 0:e7bc81df3e38 187
wim 0:e7bc81df3e38 188 // Icons off
wim 0:e7bc81df3e38 189 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD1); wait(delay);
wim 0:e7bc81df3e38 190 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD2); wait(delay);
wim 0:e7bc81df3e38 191 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD3); wait(delay);
wim 0:e7bc81df3e38 192 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD4); wait(delay);
wim 0:e7bc81df3e38 193 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD5); wait(delay);
wim 0:e7bc81df3e38 194 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD6); wait(delay);
wim 0:e7bc81df3e38 195 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD7); wait(delay);
wim 0:e7bc81df3e38 196 LEDKEY8.clrIcon(TM1638_LEDKEY8::LD8); wait(delay);
wim 0:e7bc81df3e38 197
wim 0:e7bc81df3e38 198 // wait(1);
wim 1:12dadbc0017d 199 // LEDKEY8.cls(); // clear all, preserve Icons
wim 0:e7bc81df3e38 200 pc.printf("Show all icons done\r\n");
wim 0:e7bc81df3e38 201 #endif
wim 0:e7bc81df3e38 202 }
wim 0:e7bc81df3e38 203
wim 1:12dadbc0017d 204 if (keydata[LEDKEY8_SW5_IDX] == LEDKEY8_SW5_BIT) { //sw5
wim 1:12dadbc0017d 205 LEDKEY8.cls(); // clear all, preserve Icons
wim 1:12dadbc0017d 206 LEDKEY8.writeData(hello_str);
wim 0:e7bc81df3e38 207 }
wim 0:e7bc81df3e38 208
wim 1:12dadbc0017d 209 if (keydata[LEDKEY8_SW6_IDX] == LEDKEY8_SW6_BIT) { //sw6
wim 1:12dadbc0017d 210 LEDKEY8.cls(); // clear all, preserve Icons
wim 1:12dadbc0017d 211 LEDKEY8.writeData(bye_str);
wim 1:12dadbc0017d 212 }
wim 1:12dadbc0017d 213
wim 1:12dadbc0017d 214 if (keydata[LEDKEY8_SW7_IDX] == LEDKEY8_SW7_BIT) { //sw7
wim 1:12dadbc0017d 215 LEDKEY8.cls(); // clear all, preserve Icons
wim 1:12dadbc0017d 216 LEDKEY8.printf("%2.3f", -0.1234); // test decimal point display
wim 1:12dadbc0017d 217 wait(0.5);
wim 1:12dadbc0017d 218 LEDKEY8.cls(); // clear all, preserve Icons
wim 1:12dadbc0017d 219 LEDKEY8.printf("%2.3f", -012.345); // test decimal point display
wim 0:e7bc81df3e38 220 }
wim 0:e7bc81df3e38 221
wim 1:12dadbc0017d 222 if (keydata[LEDKEY8_SW8_IDX] == LEDKEY8_SW8_BIT) { //sw8
wim 1:12dadbc0017d 223 float delay=0.1;
wim 1:12dadbc0017d 224 // Icons on
wim 1:12dadbc0017d 225 LEDKEY8.setIcon(TM1638_LEDKEY8::DP1); wait(delay);
wim 1:12dadbc0017d 226 LEDKEY8.setIcon(TM1638_LEDKEY8::DP2); wait(delay);
wim 1:12dadbc0017d 227 LEDKEY8.setIcon(TM1638_LEDKEY8::DP3); wait(delay);
wim 1:12dadbc0017d 228 LEDKEY8.setIcon(TM1638_LEDKEY8::DP4); wait(delay);
wim 1:12dadbc0017d 229 LEDKEY8.setIcon(TM1638_LEDKEY8::DP5); wait(delay);
wim 1:12dadbc0017d 230 LEDKEY8.setIcon(TM1638_LEDKEY8::DP6); wait(delay);
wim 1:12dadbc0017d 231 LEDKEY8.setIcon(TM1638_LEDKEY8::DP7); wait(delay);
wim 1:12dadbc0017d 232 LEDKEY8.setIcon(TM1638_LEDKEY8::DP8); wait(delay);
wim 1:12dadbc0017d 233
wim 1:12dadbc0017d 234 wait(delay);
wim 1:12dadbc0017d 235
wim 1:12dadbc0017d 236 // Icons off
wim 1:12dadbc0017d 237 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP8); wait(delay);
wim 1:12dadbc0017d 238 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP7); wait(delay);
wim 1:12dadbc0017d 239 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP6); wait(delay);
wim 1:12dadbc0017d 240 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP5); wait(delay);
wim 1:12dadbc0017d 241 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP4); wait(delay);
wim 1:12dadbc0017d 242 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP3); wait(delay);
wim 1:12dadbc0017d 243 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP2); wait(delay);
wim 1:12dadbc0017d 244 LEDKEY8.clrIcon(TM1638_LEDKEY8::DP1); wait(delay);
wim 0:e7bc81df3e38 245 }
wim 0:e7bc81df3e38 246
wim 0:e7bc81df3e38 247 } //if Key
wim 0:e7bc81df3e38 248
wim 0:e7bc81df3e38 249 myled = !myled;
wim 0:e7bc81df3e38 250 wait(0.3);
wim 0:e7bc81df3e38 251 } //while
wim 0:e7bc81df3e38 252 }
wim 0:e7bc81df3e38 253 #endif
wim 0:e7bc81df3e38 254
wim 0:e7bc81df3e38 255
wim 0:e7bc81df3e38 256
wim 0:e7bc81df3e38 257 #if (TM1638_TEST == 1)
wim 0:e7bc81df3e38 258 // Direct TM1638 Test
wim 0:e7bc81df3e38 259
wim 0:e7bc81df3e38 260 Serial pc(USBTX, USBRX);
wim 0:e7bc81df3e38 261 DigitalOut myled(LED1);
wim 0:e7bc81df3e38 262
wim 0:e7bc81df3e38 263 // DisplayData_t size is 16 bytes (8 Grids @ 10 Segments)
wim 0:e7bc81df3e38 264 TM1638::DisplayData_t all_str = {0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03, 0xFF,0x03};
wim 0:e7bc81df3e38 265 TM1638::DisplayData_t cls_str = {0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00};
wim 0:e7bc81df3e38 266
wim 0:e7bc81df3e38 267 // KeyData_t size is 4 bytes
wim 0:e7bc81df3e38 268 TM1638::KeyData_t keydata;
wim 0:e7bc81df3e38 269
wim 0:e7bc81df3e38 270 TM1638 TM1638(p5,p6,p7, p8);
wim 0:e7bc81df3e38 271
wim 0:e7bc81df3e38 272 char cmd, bits;
wim 0:e7bc81df3e38 273 int main() {
wim 0:e7bc81df3e38 274
wim 0:e7bc81df3e38 275 pc.printf("Hello World\r\n"); //
wim 0:e7bc81df3e38 276
wim 0:e7bc81df3e38 277 TM1638.cls();
wim 0:e7bc81df3e38 278 TM1638.writeData(all_str);
wim 0:e7bc81df3e38 279 wait(2);
wim 0:e7bc81df3e38 280 TM1638.setBrightness(TM1638_BRT3);
wim 0:e7bc81df3e38 281 wait(1);
wim 0:e7bc81df3e38 282 TM1638.setBrightness(TM1638_BRT0);
wim 0:e7bc81df3e38 283 wait(1);
wim 0:e7bc81df3e38 284 TM1638.setBrightness(TM1638_BRT4);
wim 0:e7bc81df3e38 285
wim 0:e7bc81df3e38 286 while (1) {
wim 0:e7bc81df3e38 287
wim 0:e7bc81df3e38 288 // Check and read keydata
wim 0:e7bc81df3e38 289 if (TM1638.getKeys(&keydata)) {
wim 0:e7bc81df3e38 290 pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]);
wim 0:e7bc81df3e38 291
wim 0:e7bc81df3e38 292 if (keydata[0] == 0x01) { //sw1
wim 0:e7bc81df3e38 293 TM1638.cls();
wim 0:e7bc81df3e38 294 TM1638.writeData(all_str);
wim 0:e7bc81df3e38 295 }
wim 0:e7bc81df3e38 296
wim 0:e7bc81df3e38 297 if (keydata[1] == 0x01) { //sw2
wim 0:e7bc81df3e38 298 TM1638.cls();
wim 0:e7bc81df3e38 299 TM1638.writeData(cls_str);
wim 0:e7bc81df3e38 300 }
wim 0:e7bc81df3e38 301
wim 0:e7bc81df3e38 302
wim 0:e7bc81df3e38 303 if (keydata[2] == 0x01) { //sw3
wim 0:e7bc81df3e38 304 #if(1)
wim 0:e7bc81df3e38 305 //test to show all segs
wim 0:e7bc81df3e38 306 pc.printf("Show all segs\r\n");
wim 0:e7bc81df3e38 307 wait(1);
wim 0:e7bc81df3e38 308 TM1638.cls();
wim 0:e7bc81df3e38 309
wim 0:e7bc81df3e38 310 for (int i=0; i<TM1638_DISPLAY_MEM; i++) {
wim 0:e7bc81df3e38 311 for (int bit=0; bit<8; bit++) {
wim 0:e7bc81df3e38 312 TM1638.cls();
wim 0:e7bc81df3e38 313
wim 0:e7bc81df3e38 314 bits = 0x01 << bit;
wim 0:e7bc81df3e38 315 TM1638.writeData(i, bits);
wim 0:e7bc81df3e38 316
wim 0:e7bc81df3e38 317 pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits);
wim 0:e7bc81df3e38 318 // wait(0.5);
wim 0:e7bc81df3e38 319 cmd = pc.getc(); // wait for key
wim 0:e7bc81df3e38 320 }
wim 0:e7bc81df3e38 321 }
wim 0:e7bc81df3e38 322 pc.printf("Show all segs done\r\n");
wim 0:e7bc81df3e38 323 #endif
wim 0:e7bc81df3e38 324 }
wim 0:e7bc81df3e38 325
wim 0:e7bc81df3e38 326 if (keydata[3] == 0x01) { //sw4
wim 0:e7bc81df3e38 327 TM1638.cls();
wim 0:e7bc81df3e38 328 // TM1638.writeData(hello_str);
wim 0:e7bc81df3e38 329 }
wim 0:e7bc81df3e38 330
wim 0:e7bc81df3e38 331
wim 0:e7bc81df3e38 332 } //if Key
wim 0:e7bc81df3e38 333
wim 0:e7bc81df3e38 334 myled = !myled;
wim 0:e7bc81df3e38 335 wait(0.3);
wim 0:e7bc81df3e38 336 } //while
wim 0:e7bc81df3e38 337 }
wim 0:e7bc81df3e38 338 #endif