Wim Huiskamp
/
mbed_TM1651
Test for TM1651 LED controller library Initial version, Battery monitor
See here for more information.
main.cpp@0:91c97a3b1f71, 2017-10-04 (annotated)
- Committer:
- wim
- Date:
- Wed Oct 04 19:55:33 2017 +0000
- Revision:
- 0:91c97a3b1f71
- Child:
- 1:1fb7d9ef17cd
Test program for TM1651 LED controller library; Initial version, Battery monitor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wim | 0:91c97a3b1f71 | 1 | /* mbed TM1651 Test program, for TM1651 LED controller |
wim | 0:91c97a3b1f71 | 2 | * Copyright (c) 2016, v01: WH, Initial version |
wim | 0:91c97a3b1f71 | 3 | * |
wim | 0:91c97a3b1f71 | 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
wim | 0:91c97a3b1f71 | 5 | * of this software and associated documentation files (the "Software"), to deal |
wim | 0:91c97a3b1f71 | 6 | * in the Software without restriction, including without limitation the rights |
wim | 0:91c97a3b1f71 | 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
wim | 0:91c97a3b1f71 | 8 | * copies of the Software, and to permit persons to whom the Software is |
wim | 0:91c97a3b1f71 | 9 | * furnished to do so, subject to the following conditions: |
wim | 0:91c97a3b1f71 | 10 | * |
wim | 0:91c97a3b1f71 | 11 | * The above copyright notice and this permission notice shall be included in |
wim | 0:91c97a3b1f71 | 12 | * all copies or substantial portions of the Software. |
wim | 0:91c97a3b1f71 | 13 | * |
wim | 0:91c97a3b1f71 | 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
wim | 0:91c97a3b1f71 | 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
wim | 0:91c97a3b1f71 | 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
wim | 0:91c97a3b1f71 | 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
wim | 0:91c97a3b1f71 | 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
wim | 0:91c97a3b1f71 | 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
wim | 0:91c97a3b1f71 | 20 | * THE SOFTWARE. |
wim | 0:91c97a3b1f71 | 21 | */ |
wim | 0:91c97a3b1f71 | 22 | #include "mbed.h" |
wim | 0:91c97a3b1f71 | 23 | #include "TM1651.h" |
wim | 0:91c97a3b1f71 | 24 | |
wim | 0:91c97a3b1f71 | 25 | #if (OPENSMART_TEST == 1) |
wim | 0:91c97a3b1f71 | 26 | // OPENSMART TM1651 battery level display test |
wim | 0:91c97a3b1f71 | 27 | |
wim | 0:91c97a3b1f71 | 28 | Serial pc(USBTX, USBRX); |
wim | 0:91c97a3b1f71 | 29 | DigitalOut myled(LED1); //NOTE: On F401 LED1 is Pin D13, which is SCK! |
wim | 0:91c97a3b1f71 | 30 | |
wim | 0:91c97a3b1f71 | 31 | // DisplayData_t size is 4 bytes (4 Grids @ 7 Segments) |
wim | 0:91c97a3b1f71 | 32 | TM1651::DisplayData_t all_str = {0x7F, 0x7F, 0x7F, 0x7F}; |
wim | 0:91c97a3b1f71 | 33 | TM1651::DisplayData_t cls_str = {0x00, 0x00, 0x00, 0x00}; |
wim | 0:91c97a3b1f71 | 34 | |
wim | 0:91c97a3b1f71 | 35 | // KeyData_t size is 1 bytes |
wim | 0:91c97a3b1f71 | 36 | TM1651::KeyData_t keydata; |
wim | 0:91c97a3b1f71 | 37 | |
wim | 0:91c97a3b1f71 | 38 | //TM1651_OPENSMART declaration |
wim | 0:91c97a3b1f71 | 39 | TM1651_OPENSMART OPENSMART(p6, p7); //LPC1768 |
wim | 0:91c97a3b1f71 | 40 | //TM1651_OPENSMART OPENSMART(D9, D10); //F401 |
wim | 0:91c97a3b1f71 | 41 | |
wim | 0:91c97a3b1f71 | 42 | void show_menu() { |
wim | 0:91c97a3b1f71 | 43 | // pc.printf("0: Exit\n\r"); |
wim | 0:91c97a3b1f71 | 44 | pc.printf("1: All\n\r"); |
wim | 0:91c97a3b1f71 | 45 | pc.printf("2: Show all segs\r\n"); |
wim | 0:91c97a3b1f71 | 46 | pc.printf("3: Show all leds\n\r"); |
wim | 0:91c97a3b1f71 | 47 | pc.printf("4: Show all levels\n\r"); |
wim | 0:91c97a3b1f71 | 48 | pc.printf("5: Kitt\n\r"); |
wim | 0:91c97a3b1f71 | 49 | pc.printf("6: Cls\n\r"); |
wim | 0:91c97a3b1f71 | 50 | pc.printf("k: Key\n\r"); |
wim | 0:91c97a3b1f71 | 51 | } |
wim | 0:91c97a3b1f71 | 52 | |
wim | 0:91c97a3b1f71 | 53 | |
wim | 0:91c97a3b1f71 | 54 | char cmd, bits; |
wim | 0:91c97a3b1f71 | 55 | int main() { |
wim | 0:91c97a3b1f71 | 56 | |
wim | 0:91c97a3b1f71 | 57 | pc.printf("Hello World\r\n"); // |
wim | 0:91c97a3b1f71 | 58 | |
wim | 0:91c97a3b1f71 | 59 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 60 | OPENSMART.writeData(all_str); |
wim | 0:91c97a3b1f71 | 61 | wait(2); |
wim | 0:91c97a3b1f71 | 62 | OPENSMART.setBrightness(TM1651_BRT3); |
wim | 0:91c97a3b1f71 | 63 | wait(1); |
wim | 0:91c97a3b1f71 | 64 | OPENSMART.setBrightness(TM1651_BRT0); |
wim | 0:91c97a3b1f71 | 65 | wait(1); |
wim | 0:91c97a3b1f71 | 66 | OPENSMART.setBrightness(TM1651_BRT4); |
wim | 0:91c97a3b1f71 | 67 | |
wim | 0:91c97a3b1f71 | 68 | wait(1); |
wim | 0:91c97a3b1f71 | 69 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 70 | |
wim | 0:91c97a3b1f71 | 71 | char cmd2 = '0'; |
wim | 0:91c97a3b1f71 | 72 | while (1) { |
wim | 0:91c97a3b1f71 | 73 | |
wim | 0:91c97a3b1f71 | 74 | show_menu(); |
wim | 0:91c97a3b1f71 | 75 | cmd2 = pc.getc(); |
wim | 0:91c97a3b1f71 | 76 | |
wim | 0:91c97a3b1f71 | 77 | switch (cmd2) { |
wim | 0:91c97a3b1f71 | 78 | case '1' : { |
wim | 0:91c97a3b1f71 | 79 | pc.printf("all\r\n"); |
wim | 0:91c97a3b1f71 | 80 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 81 | OPENSMART.writeData(all_str); |
wim | 0:91c97a3b1f71 | 82 | break; |
wim | 0:91c97a3b1f71 | 83 | } |
wim | 0:91c97a3b1f71 | 84 | |
wim | 0:91c97a3b1f71 | 85 | case '2' : { |
wim | 0:91c97a3b1f71 | 86 | #if(1) |
wim | 0:91c97a3b1f71 | 87 | //test to show all segs |
wim | 0:91c97a3b1f71 | 88 | pc.printf("Show all segs\r\n"); |
wim | 0:91c97a3b1f71 | 89 | wait(1); |
wim | 0:91c97a3b1f71 | 90 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 91 | |
wim | 0:91c97a3b1f71 | 92 | for (int i=0; i<TM1651_DISPLAY_MEM; i++) { |
wim | 0:91c97a3b1f71 | 93 | for (int bit=0; bit<8; bit++) { |
wim | 0:91c97a3b1f71 | 94 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 95 | |
wim | 0:91c97a3b1f71 | 96 | bits = 0x01 << bit; |
wim | 0:91c97a3b1f71 | 97 | OPENSMART.writeData(bits, i); |
wim | 0:91c97a3b1f71 | 98 | |
wim | 0:91c97a3b1f71 | 99 | pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits); |
wim | 0:91c97a3b1f71 | 100 | // wait(0.5); |
wim | 0:91c97a3b1f71 | 101 | cmd = pc.getc(); // wait for key |
wim | 0:91c97a3b1f71 | 102 | } |
wim | 0:91c97a3b1f71 | 103 | } |
wim | 0:91c97a3b1f71 | 104 | pc.printf("\r\nShow all segs done\r\n"); |
wim | 0:91c97a3b1f71 | 105 | #endif |
wim | 0:91c97a3b1f71 | 106 | break; |
wim | 0:91c97a3b1f71 | 107 | } |
wim | 0:91c97a3b1f71 | 108 | |
wim | 0:91c97a3b1f71 | 109 | case '3': { |
wim | 0:91c97a3b1f71 | 110 | #if(1) |
wim | 0:91c97a3b1f71 | 111 | //test to show all LEDs |
wim | 0:91c97a3b1f71 | 112 | pc.printf("Show all Leds\r\n"); |
wim | 0:91c97a3b1f71 | 113 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 114 | |
wim | 0:91c97a3b1f71 | 115 | float delay=0.1; |
wim | 0:91c97a3b1f71 | 116 | // Leds on |
wim | 0:91c97a3b1f71 | 117 | OPENSMART.setIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 118 | OPENSMART.setIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 119 | OPENSMART.setIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 120 | OPENSMART.setIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 121 | OPENSMART.setIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 122 | OPENSMART.setIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 123 | OPENSMART.setIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 124 | |
wim | 0:91c97a3b1f71 | 125 | wait(delay); |
wim | 0:91c97a3b1f71 | 126 | |
wim | 0:91c97a3b1f71 | 127 | // Leds off |
wim | 0:91c97a3b1f71 | 128 | OPENSMART.clrIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 129 | OPENSMART.clrIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 130 | OPENSMART.clrIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 131 | OPENSMART.clrIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 132 | OPENSMART.clrIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 133 | OPENSMART.clrIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 134 | OPENSMART.clrIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 135 | |
wim | 0:91c97a3b1f71 | 136 | // wait(1); |
wim | 0:91c97a3b1f71 | 137 | pc.printf("Show all Leds done\r\n"); |
wim | 0:91c97a3b1f71 | 138 | #endif |
wim | 0:91c97a3b1f71 | 139 | break; |
wim | 0:91c97a3b1f71 | 140 | } |
wim | 0:91c97a3b1f71 | 141 | |
wim | 0:91c97a3b1f71 | 142 | case '4': { |
wim | 0:91c97a3b1f71 | 143 | #if(1) |
wim | 0:91c97a3b1f71 | 144 | //test to show all Levels |
wim | 0:91c97a3b1f71 | 145 | pc.printf("Show all Levels\r\n"); |
wim | 0:91c97a3b1f71 | 146 | OPENSMART.cls(); |
wim | 0:91c97a3b1f71 | 147 | |
wim | 0:91c97a3b1f71 | 148 | float delay=0.1; |
wim | 0:91c97a3b1f71 | 149 | // Levels |
wim | 0:91c97a3b1f71 | 150 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_0); wait(delay); |
wim | 0:91c97a3b1f71 | 151 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_1); wait(delay); |
wim | 0:91c97a3b1f71 | 152 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_2); wait(delay); |
wim | 0:91c97a3b1f71 | 153 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_3); wait(delay); |
wim | 0:91c97a3b1f71 | 154 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_4); wait(delay); |
wim | 0:91c97a3b1f71 | 155 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_5); wait(delay); |
wim | 0:91c97a3b1f71 | 156 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_6); wait(delay); |
wim | 0:91c97a3b1f71 | 157 | |
wim | 0:91c97a3b1f71 | 158 | wait(delay); |
wim | 0:91c97a3b1f71 | 159 | |
wim | 0:91c97a3b1f71 | 160 | // Levels off |
wim | 0:91c97a3b1f71 | 161 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_5); wait(delay); |
wim | 0:91c97a3b1f71 | 162 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_4); wait(delay); |
wim | 0:91c97a3b1f71 | 163 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_3); wait(delay); |
wim | 0:91c97a3b1f71 | 164 | // OPENSMART.setLevel(TM1651_OPENSMART::LVL_2); wait(delay); |
wim | 0:91c97a3b1f71 | 165 | // OPENSMART.setLevel(TM1651_OPENSMART::LVL_1); wait(delay); |
wim | 0:91c97a3b1f71 | 166 | // OPENSMART.setLevel(TM1651_OPENSMART::LVL_0); wait(delay); |
wim | 0:91c97a3b1f71 | 167 | |
wim | 0:91c97a3b1f71 | 168 | // wait(1); |
wim | 0:91c97a3b1f71 | 169 | pc.printf("Show all Levels done\r\n"); |
wim | 0:91c97a3b1f71 | 170 | #endif |
wim | 0:91c97a3b1f71 | 171 | break; |
wim | 0:91c97a3b1f71 | 172 | } |
wim | 0:91c97a3b1f71 | 173 | |
wim | 0:91c97a3b1f71 | 174 | case '5': { |
wim | 0:91c97a3b1f71 | 175 | |
wim | 0:91c97a3b1f71 | 176 | #if(0) |
wim | 0:91c97a3b1f71 | 177 | //test to show KITT |
wim | 0:91c97a3b1f71 | 178 | pc.printf("Show KITT scanner\r\n"); |
wim | 0:91c97a3b1f71 | 179 | OPENSMART.cls(); // clear all |
wim | 0:91c97a3b1f71 | 180 | |
wim | 0:91c97a3b1f71 | 181 | float delay=0.1; |
wim | 0:91c97a3b1f71 | 182 | while (!pc.readable()) { // wait for key |
wim | 0:91c97a3b1f71 | 183 | // Levels |
wim | 0:91c97a3b1f71 | 184 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_0); wait(delay); |
wim | 0:91c97a3b1f71 | 185 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_1); wait(delay); |
wim | 0:91c97a3b1f71 | 186 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_2); wait(delay); |
wim | 0:91c97a3b1f71 | 187 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_3); wait(delay); |
wim | 0:91c97a3b1f71 | 188 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_4); wait(delay); |
wim | 0:91c97a3b1f71 | 189 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_5); wait(delay); |
wim | 0:91c97a3b1f71 | 190 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_6); wait(delay); |
wim | 0:91c97a3b1f71 | 191 | // Levels off |
wim | 0:91c97a3b1f71 | 192 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_5); wait(delay); |
wim | 0:91c97a3b1f71 | 193 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_4); wait(delay); |
wim | 0:91c97a3b1f71 | 194 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_3); wait(delay); |
wim | 0:91c97a3b1f71 | 195 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_2); wait(delay); |
wim | 0:91c97a3b1f71 | 196 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_1); wait(delay); |
wim | 0:91c97a3b1f71 | 197 | OPENSMART.setLevel(TM1651_OPENSMART::LVL_0); wait(delay); |
wim | 0:91c97a3b1f71 | 198 | OPENSMART.cls(); ; wait(delay) // clear all |
wim | 0:91c97a3b1f71 | 199 | } |
wim | 0:91c97a3b1f71 | 200 | cmd = pc.getc(); // read key |
wim | 0:91c97a3b1f71 | 201 | pc.printf("Show KITT done\r\n"); |
wim | 0:91c97a3b1f71 | 202 | #endif |
wim | 0:91c97a3b1f71 | 203 | |
wim | 0:91c97a3b1f71 | 204 | #if(1) |
wim | 0:91c97a3b1f71 | 205 | //test to show KITT |
wim | 0:91c97a3b1f71 | 206 | pc.printf("Show KITT scanner\r\n"); |
wim | 0:91c97a3b1f71 | 207 | OPENSMART.cls(); // clear all |
wim | 0:91c97a3b1f71 | 208 | |
wim | 0:91c97a3b1f71 | 209 | float delay=0.05; |
wim | 0:91c97a3b1f71 | 210 | while (!pc.readable()) { // wait for key |
wim | 0:91c97a3b1f71 | 211 | // Leds |
wim | 0:91c97a3b1f71 | 212 | OPENSMART.setIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 213 | OPENSMART.setIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 214 | |
wim | 0:91c97a3b1f71 | 215 | OPENSMART.setIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 216 | OPENSMART.clrIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 217 | |
wim | 0:91c97a3b1f71 | 218 | OPENSMART.setIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 219 | OPENSMART.clrIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 220 | |
wim | 0:91c97a3b1f71 | 221 | OPENSMART.setIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 222 | OPENSMART.clrIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 223 | |
wim | 0:91c97a3b1f71 | 224 | OPENSMART.setIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 225 | OPENSMART.clrIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 226 | |
wim | 0:91c97a3b1f71 | 227 | OPENSMART.setIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 228 | OPENSMART.clrIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 229 | |
wim | 0:91c97a3b1f71 | 230 | OPENSMART.clrIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 231 | |
wim | 0:91c97a3b1f71 | 232 | OPENSMART.clrIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 233 | |
wim | 0:91c97a3b1f71 | 234 | OPENSMART.setIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 235 | OPENSMART.setIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 236 | |
wim | 0:91c97a3b1f71 | 237 | OPENSMART.setIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 238 | OPENSMART.clrIcon(TM1651_OPENSMART::LD10); wait(delay); |
wim | 0:91c97a3b1f71 | 239 | |
wim | 0:91c97a3b1f71 | 240 | OPENSMART.setIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 241 | OPENSMART.clrIcon(TM1651_OPENSMART::LD89); wait(delay); |
wim | 0:91c97a3b1f71 | 242 | |
wim | 0:91c97a3b1f71 | 243 | OPENSMART.setIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 244 | OPENSMART.clrIcon(TM1651_OPENSMART::LD67); wait(delay); |
wim | 0:91c97a3b1f71 | 245 | |
wim | 0:91c97a3b1f71 | 246 | OPENSMART.setIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 247 | OPENSMART.clrIcon(TM1651_OPENSMART::LD5); wait(delay); |
wim | 0:91c97a3b1f71 | 248 | |
wim | 0:91c97a3b1f71 | 249 | OPENSMART.setIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 250 | OPENSMART.clrIcon(TM1651_OPENSMART::LD4); wait(delay); |
wim | 0:91c97a3b1f71 | 251 | |
wim | 0:91c97a3b1f71 | 252 | OPENSMART.clrIcon(TM1651_OPENSMART::LD3); wait(delay); |
wim | 0:91c97a3b1f71 | 253 | |
wim | 0:91c97a3b1f71 | 254 | OPENSMART.clrIcon(TM1651_OPENSMART::LD12); wait(delay); |
wim | 0:91c97a3b1f71 | 255 | } |
wim | 0:91c97a3b1f71 | 256 | cmd = pc.getc(); // read key |
wim | 0:91c97a3b1f71 | 257 | pc.printf("Show KITT done\r\n"); |
wim | 0:91c97a3b1f71 | 258 | #endif |
wim | 0:91c97a3b1f71 | 259 | break; |
wim | 0:91c97a3b1f71 | 260 | } |
wim | 0:91c97a3b1f71 | 261 | |
wim | 0:91c97a3b1f71 | 262 | case '6': { |
wim | 0:91c97a3b1f71 | 263 | OPENSMART.cls(); // clear all |
wim | 0:91c97a3b1f71 | 264 | break; |
wim | 0:91c97a3b1f71 | 265 | } |
wim | 0:91c97a3b1f71 | 266 | |
wim | 0:91c97a3b1f71 | 267 | case 'k': { |
wim | 0:91c97a3b1f71 | 268 | if (OPENSMART.getKeys(&keydata)) { |
wim | 0:91c97a3b1f71 | 269 | pc.printf("Keydata = 0x%02x\r\n", keydata); |
wim | 0:91c97a3b1f71 | 270 | } |
wim | 0:91c97a3b1f71 | 271 | break; |
wim | 0:91c97a3b1f71 | 272 | } |
wim | 0:91c97a3b1f71 | 273 | |
wim | 0:91c97a3b1f71 | 274 | default : { |
wim | 0:91c97a3b1f71 | 275 | break; |
wim | 0:91c97a3b1f71 | 276 | } |
wim | 0:91c97a3b1f71 | 277 | |
wim | 0:91c97a3b1f71 | 278 | } //switch cmd |
wim | 0:91c97a3b1f71 | 279 | |
wim | 0:91c97a3b1f71 | 280 | myled = !myled; |
wim | 0:91c97a3b1f71 | 281 | wait(0.3); |
wim | 0:91c97a3b1f71 | 282 | } //while |
wim | 0:91c97a3b1f71 | 283 | } |
wim | 0:91c97a3b1f71 | 284 | #endif |
wim | 0:91c97a3b1f71 | 285 | |
wim | 0:91c97a3b1f71 | 286 | |
wim | 0:91c97a3b1f71 | 287 | #if (TM1651_TEST == 1) |
wim | 0:91c97a3b1f71 | 288 | // Direct TM1651 Test |
wim | 0:91c97a3b1f71 | 289 | |
wim | 0:91c97a3b1f71 | 290 | Serial pc(USBTX, USBRX); |
wim | 0:91c97a3b1f71 | 291 | DigitalOut myled(LED1); |
wim | 0:91c97a3b1f71 | 292 | |
wim | 0:91c97a3b1f71 | 293 | // DisplayData_t size is 4 bytes (4 Grids @ 7 Segments) |
wim | 0:91c97a3b1f71 | 294 | TM1651::DisplayData_t all_str = {0x7F, 0x7F, 0x7F, 0x7F}; |
wim | 0:91c97a3b1f71 | 295 | TM1651::DisplayData_t cls_str = {0x00, 0x00, 0x00, 0x00}; |
wim | 0:91c97a3b1f71 | 296 | |
wim | 0:91c97a3b1f71 | 297 | // KeyData_t size is 1 bytes |
wim | 0:91c97a3b1f71 | 298 | TM1651::KeyData_t keydata; |
wim | 0:91c97a3b1f71 | 299 | |
wim | 0:91c97a3b1f71 | 300 | // TM1651 declaration |
wim | 0:91c97a3b1f71 | 301 | TM1651 TM1651(p6,p7); //LPC1768 |
wim | 0:91c97a3b1f71 | 302 | |
wim | 0:91c97a3b1f71 | 303 | void show_menu() { |
wim | 0:91c97a3b1f71 | 304 | // pc.printf("0: Exit\n\r"); |
wim | 0:91c97a3b1f71 | 305 | pc.printf("1: All\n\r"); |
wim | 0:91c97a3b1f71 | 306 | pc.printf("2: Cls\n\r"); |
wim | 0:91c97a3b1f71 | 307 | pc.printf("3: Show all segs\r\n"); |
wim | 0:91c97a3b1f71 | 308 | } |
wim | 0:91c97a3b1f71 | 309 | |
wim | 0:91c97a3b1f71 | 310 | |
wim | 0:91c97a3b1f71 | 311 | char cmd, bits; |
wim | 0:91c97a3b1f71 | 312 | int main() { |
wim | 0:91c97a3b1f71 | 313 | |
wim | 0:91c97a3b1f71 | 314 | pc.printf("Hello World\r\n"); // |
wim | 0:91c97a3b1f71 | 315 | |
wim | 0:91c97a3b1f71 | 316 | TM1651.cls(); |
wim | 0:91c97a3b1f71 | 317 | TM1651.writeData(all_str); |
wim | 0:91c97a3b1f71 | 318 | wait(2); |
wim | 0:91c97a3b1f71 | 319 | TM1651.setBrightness(TM1651_BRT3); |
wim | 0:91c97a3b1f71 | 320 | wait(1); |
wim | 0:91c97a3b1f71 | 321 | TM1651.setBrightness(TM1651_BRT0); |
wim | 0:91c97a3b1f71 | 322 | wait(1); |
wim | 0:91c97a3b1f71 | 323 | TM1651.setBrightness(TM1651_BRT4); |
wim | 0:91c97a3b1f71 | 324 | |
wim | 0:91c97a3b1f71 | 325 | while (1) { |
wim | 0:91c97a3b1f71 | 326 | |
wim | 0:91c97a3b1f71 | 327 | cmd = pc.getc(); |
wim | 0:91c97a3b1f71 | 328 | |
wim | 0:91c97a3b1f71 | 329 | switch (cmd) { |
wim | 0:91c97a3b1f71 | 330 | case '1' : |
wim | 0:91c97a3b1f71 | 331 | TM1651.cls(); |
wim | 0:91c97a3b1f71 | 332 | TM1651.writeData(all_str); |
wim | 0:91c97a3b1f71 | 333 | break; |
wim | 0:91c97a3b1f71 | 334 | |
wim | 0:91c97a3b1f71 | 335 | case '2' : |
wim | 0:91c97a3b1f71 | 336 | TM1651.cls(); |
wim | 0:91c97a3b1f71 | 337 | TM1651.writeData(cls_str); |
wim | 0:91c97a3b1f71 | 338 | break; |
wim | 0:91c97a3b1f71 | 339 | |
wim | 0:91c97a3b1f71 | 340 | case '3' : |
wim | 0:91c97a3b1f71 | 341 | |
wim | 0:91c97a3b1f71 | 342 | #if(1) |
wim | 0:91c97a3b1f71 | 343 | //test to show all segs |
wim | 0:91c97a3b1f71 | 344 | pc.printf("Show all segs\r\n"); |
wim | 0:91c97a3b1f71 | 345 | wait(1); |
wim | 0:91c97a3b1f71 | 346 | TM1651.cls(); |
wim | 0:91c97a3b1f71 | 347 | |
wim | 0:91c97a3b1f71 | 348 | for (int i=0; i<TM1651_DISPLAY_MEM; i++) { |
wim | 0:91c97a3b1f71 | 349 | for (int bit=0; bit<8; bit++) { |
wim | 0:91c97a3b1f71 | 350 | TM1651.cls(); |
wim | 0:91c97a3b1f71 | 351 | |
wim | 0:91c97a3b1f71 | 352 | bits = 0x01 << bit; |
wim | 0:91c97a3b1f71 | 353 | TM1651.writeData(bits, i); |
wim | 0:91c97a3b1f71 | 354 | |
wim | 0:91c97a3b1f71 | 355 | pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits); |
wim | 0:91c97a3b1f71 | 356 | // wait(0.5); |
wim | 0:91c97a3b1f71 | 357 | cmd = pc.getc(); // wait for key |
wim | 0:91c97a3b1f71 | 358 | } |
wim | 0:91c97a3b1f71 | 359 | } |
wim | 0:91c97a3b1f71 | 360 | pc.printf("Show all segs done\r\n"); |
wim | 0:91c97a3b1f71 | 361 | #endif |
wim | 0:91c97a3b1f71 | 362 | break; |
wim | 0:91c97a3b1f71 | 363 | |
wim | 0:91c97a3b1f71 | 364 | default : |
wim | 0:91c97a3b1f71 | 365 | break; |
wim | 0:91c97a3b1f71 | 366 | |
wim | 0:91c97a3b1f71 | 367 | } //switch cmd |
wim | 0:91c97a3b1f71 | 368 | |
wim | 0:91c97a3b1f71 | 369 | // Check and read keydata |
wim | 0:91c97a3b1f71 | 370 | if (TM1651.getKeys(&keydata)) { |
wim | 0:91c97a3b1f71 | 371 | pc.printf("Keydata = 0x%02x\r\n", keydata); |
wim | 0:91c97a3b1f71 | 372 | } // Check keydata |
wim | 0:91c97a3b1f71 | 373 | |
wim | 0:91c97a3b1f71 | 374 | myled = !myled; |
wim | 0:91c97a3b1f71 | 375 | wait(0.3); |
wim | 0:91c97a3b1f71 | 376 | } //while |
wim | 0:91c97a3b1f71 | 377 | } |
wim | 0:91c97a3b1f71 | 378 | #endif |