Test for TM1651 LED controller library Initial version, Battery monitor

Dependencies:   TM1651 mbed

See here for more information.

Committer:
wim
Date:
Fri Oct 06 16:16:21 2017 +0000
Revision:
1:1fb7d9ef17cd
Parent:
0:91c97a3b1f71
Documentation fixes.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:91c97a3b1f71 1 /* mbed TM1651 Test program, for TM1651 LED controller
wim 1:1fb7d9ef17cd 2 * Copyright (c) 2017, 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