Wim Huiskamp
/
mbed_TM1640
Test program for TM1640 LED controller library. Initial version
See here for more information.
main.cpp@0:8b464b34f744, 2016-01-28 (annotated)
- 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?
User | Revision | Line number | New 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 |