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:
Fri Jan 15 19:10:16 2016 +0000
Revision:
2:d6720abfe574
Parent:
1:12dadbc0017d
Child:
3:f1484bfa0574
Refactored display and keyboard defines, added ASCII font.

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