Wim Huiskamp
/
mbed_PT6301
Test for PT6301 VFD. First release.
main.cpp@1:73833adc27b1, 2021-06-13 (annotated)
- Committer:
- wim
- Date:
- Sun Jun 13 13:15:06 2021 +0000
- Revision:
- 1:73833adc27b1
- Parent:
- 0:a99bfc8384e4
Example for PT6301 VFD lib. First release.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wim | 1:73833adc27b1 | 1 | /* mbed PT6301 Test program, for Princeton PT6301 VFD controller |
wim | 1:73833adc27b1 | 2 | * The controller is used by Futaba 'Chip In Glass' (CIG) VFD tubes. |
wim | 0:a99bfc8384e4 | 3 | * |
wim | 1:73833adc27b1 | 4 | * Copyright (c) 2021, v01: WH, Initial version |
wim | 0:a99bfc8384e4 | 5 | * |
wim | 0:a99bfc8384e4 | 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy |
wim | 0:a99bfc8384e4 | 7 | * of this software and associated documentation files (the "Software"), to deal |
wim | 0:a99bfc8384e4 | 8 | * in the Software without restriction, including without limitation the rights |
wim | 0:a99bfc8384e4 | 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
wim | 0:a99bfc8384e4 | 10 | * copies of the Software, and to permit persons to whom the Software is |
wim | 0:a99bfc8384e4 | 11 | * furnished to do so, subject to the following conditions: |
wim | 0:a99bfc8384e4 | 12 | * |
wim | 0:a99bfc8384e4 | 13 | * The above copyright notice and this permission notice shall be included in |
wim | 0:a99bfc8384e4 | 14 | * all copies or substantial portions of the Software. |
wim | 0:a99bfc8384e4 | 15 | * |
wim | 0:a99bfc8384e4 | 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
wim | 0:a99bfc8384e4 | 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
wim | 0:a99bfc8384e4 | 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
wim | 0:a99bfc8384e4 | 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
wim | 0:a99bfc8384e4 | 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
wim | 0:a99bfc8384e4 | 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
wim | 0:a99bfc8384e4 | 22 | * THE SOFTWARE. |
wim | 0:a99bfc8384e4 | 23 | */ |
wim | 0:a99bfc8384e4 | 24 | #include "mbed.h" |
wim | 1:73833adc27b1 | 25 | #include "PT6301.h" |
wim | 0:a99bfc8384e4 | 26 | |
wim | 1:73833adc27b1 | 27 | // Select one of the testboards for Princeton PT6301 VFD controller |
wim | 1:73833adc27b1 | 28 | #include "PT6301_Config.h" |
wim | 0:a99bfc8384e4 | 29 | |
wim | 1:73833adc27b1 | 30 | |
wim | 1:73833adc27b1 | 31 | #if (SMTG7400_TEST == 1) |
wim | 0:a99bfc8384e4 | 32 | |
wim | 0:a99bfc8384e4 | 33 | DigitalOut myled(LED1); |
wim | 0:a99bfc8384e4 | 34 | Serial pc(USBTX, USBRX); |
wim | 0:a99bfc8384e4 | 35 | |
wim | 1:73833adc27b1 | 36 | // PT6301_SMTG7400 declaration, Default setting 16 Grids @ 5x7 Segments, with 4 additional Icons and 1 Row |
wim | 1:73833adc27b1 | 37 | PT6301_SMTG7400 PT6301(p5, p7, p8, p9); // DI, CLK, CS, RST |
wim | 1:73833adc27b1 | 38 | |
wim | 1:73833adc27b1 | 39 | int main() { |
wim | 1:73833adc27b1 | 40 | pc.printf("Hello World: PT6301_SMTG7400 test\n\r"); |
wim | 1:73833adc27b1 | 41 | |
wim | 1:73833adc27b1 | 42 | // PT6301.printf("Hello World"); |
wim | 1:73833adc27b1 | 43 | PT6301.printf("Hello World %1.2f", 1.23); |
wim | 1:73833adc27b1 | 44 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 45 | |
wim | 1:73833adc27b1 | 46 | PT6301.setBrightness(PT6301_BRT_6); |
wim | 1:73833adc27b1 | 47 | wait(1); |
wim | 1:73833adc27b1 | 48 | PT6301.setBrightness(PT6301_BRT_DEF); |
wim | 1:73833adc27b1 | 49 | wait(1); |
wim | 1:73833adc27b1 | 50 | |
wim | 1:73833adc27b1 | 51 | PT6301.setIcon(SMTG7400_ICON_OFFLINE); |
wim | 1:73833adc27b1 | 52 | PT6301.setIcon(SMTG7400_ICON_WIFI); |
wim | 1:73833adc27b1 | 53 | PT6301.setIcon(SMTG7400_ICON_PHONE); |
wim | 1:73833adc27b1 | 54 | PT6301.setIcon(SMTG7400_ICON_REC); |
wim | 1:73833adc27b1 | 55 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 56 | wait(1); |
wim | 1:73833adc27b1 | 57 | |
wim | 1:73833adc27b1 | 58 | PT6301.cls(); |
wim | 1:73833adc27b1 | 59 | // PT6301.locate(0, 0); |
wim | 1:73833adc27b1 | 60 | PT6301.setUDC(0, (char*) udc_LAR); |
wim | 1:73833adc27b1 | 61 | PT6301.setUDC(1, (char*) udc_RAR); |
wim | 1:73833adc27b1 | 62 | PT6301.putc(char(0)); |
wim | 1:73833adc27b1 | 63 | PT6301.putc(char(1)); |
wim | 1:73833adc27b1 | 64 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 65 | wait(1); |
wim | 1:73833adc27b1 | 66 | |
wim | 1:73833adc27b1 | 67 | while(1) { |
wim | 1:73833adc27b1 | 68 | myled = !myled; |
wim | 1:73833adc27b1 | 69 | PT6301.clrIcon(SMTG7400_ICON_OFFLINE); |
wim | 1:73833adc27b1 | 70 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 71 | wait(1); |
wim | 1:73833adc27b1 | 72 | |
wim | 1:73833adc27b1 | 73 | myled = !myled; |
wim | 1:73833adc27b1 | 74 | PT6301.setIcon(SMTG7400_ICON_OFFLINE); |
wim | 1:73833adc27b1 | 75 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 76 | wait(1); |
wim | 1:73833adc27b1 | 77 | } |
wim | 1:73833adc27b1 | 78 | } |
wim | 1:73833adc27b1 | 79 | #endif |
wim | 1:73833adc27b1 | 80 | |
wim | 1:73833adc27b1 | 81 | |
wim | 1:73833adc27b1 | 82 | |
wim | 1:73833adc27b1 | 83 | |
wim | 1:73833adc27b1 | 84 | |
wim | 1:73833adc27b1 | 85 | #if (SMTC7140_TEST == 1) |
wim | 1:73833adc27b1 | 86 | |
wim | 1:73833adc27b1 | 87 | // PT6301 Test |
wim | 1:73833adc27b1 | 88 | #include "mbed.h" |
wim | 1:73833adc27b1 | 89 | #include "PT6301.h" |
wim | 1:73833adc27b1 | 90 | |
wim | 1:73833adc27b1 | 91 | DigitalOut myled(LED1); |
wim | 1:73833adc27b1 | 92 | Serial pc(USBTX, USBRX); |
wim | 1:73833adc27b1 | 93 | |
wim | 1:73833adc27b1 | 94 | // PT6301_SMTC7140 declaration, Default setting 12 Grids @ 5x7 Segments, without additional Icons, 2 Rows. Separate Grid13 for Icons |
wim | 1:73833adc27b1 | 95 | PT6301_SMTC7140 PT6301(p5, p7, p8, p9); |
wim | 0:a99bfc8384e4 | 96 | |
wim | 0:a99bfc8384e4 | 97 | void show_menu() { |
wim | 0:a99bfc8384e4 | 98 | // pc.printf("0: Exit\n\r"); |
wim | 0:a99bfc8384e4 | 99 | pc.printf("1: All\n\r"); |
wim | 0:a99bfc8384e4 | 100 | pc.printf("2: Show UDC chars\n\r"); |
wim | 0:a99bfc8384e4 | 101 | pc.printf("3: Show all chars\n\r"); |
wim | 0:a99bfc8384e4 | 102 | pc.printf("4: Show all digits\n\r"); |
wim | 1:73833adc27b1 | 103 | pc.printf("5: Show all icons\n\r"); |
wim | 0:a99bfc8384e4 | 104 | pc.printf("6: Counter\n\r"); |
wim | 0:a99bfc8384e4 | 105 | pc.printf("7: Floats\n\r"); |
wim | 0:a99bfc8384e4 | 106 | pc.printf("8: Kitt\n\r"); |
wim | 1:73833adc27b1 | 107 | pc.printf("9: Cls\n\r"); |
wim | 1:73833adc27b1 | 108 | pc.printf("A: Display All Off / Normal\n\r"); |
wim | 1:73833adc27b1 | 109 | pc.printf("B: Display All On / Normal\n\r"); |
wim | 0:a99bfc8384e4 | 110 | pc.printf("C: Bye\n\r"); |
wim | 0:a99bfc8384e4 | 111 | } |
wim | 0:a99bfc8384e4 | 112 | |
wim | 0:a99bfc8384e4 | 113 | |
wim | 0:a99bfc8384e4 | 114 | int main() { |
wim | 1:73833adc27b1 | 115 | pc.printf("Hello World: PT6301 SMTC7140 test\n\r"); |
wim | 0:a99bfc8384e4 | 116 | |
wim | 1:73833adc27b1 | 117 | PT6301.locate(0, 0); |
wim | 1:73833adc27b1 | 118 | PT6301.printf("Hello mbed"); |
wim | 1:73833adc27b1 | 119 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 120 | wait(1); |
wim | 1:73833adc27b1 | 121 | |
wim | 1:73833adc27b1 | 122 | PT6301.setBrightness(PT6301_BRT_7); |
wim | 0:a99bfc8384e4 | 123 | wait(1); |
wim | 1:73833adc27b1 | 124 | // PT6301.setBrightness(PT6301_BRT_0); |
wim | 1:73833adc27b1 | 125 | // wait(1); |
wim | 1:73833adc27b1 | 126 | PT6301.setBrightness(PT6301_BRT_DEF); |
wim | 0:a99bfc8384e4 | 127 | |
wim | 0:a99bfc8384e4 | 128 | char cmd, cmd2 = '0'; |
wim | 0:a99bfc8384e4 | 129 | while (1) { |
wim | 0:a99bfc8384e4 | 130 | |
wim | 0:a99bfc8384e4 | 131 | show_menu(); |
wim | 0:a99bfc8384e4 | 132 | cmd2 = pc.getc(); |
wim | 0:a99bfc8384e4 | 133 | |
wim | 0:a99bfc8384e4 | 134 | switch (cmd2) { |
wim | 0:a99bfc8384e4 | 135 | case '1' : { |
wim | 0:a99bfc8384e4 | 136 | pc.printf("all\r\n"); |
wim | 1:73833adc27b1 | 137 | PT6301.cls(); |
wim | 1:73833adc27b1 | 138 | PT6301.printf("Hello mbed"); |
wim | 1:73833adc27b1 | 139 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 140 | break; |
wim | 0:a99bfc8384e4 | 141 | } |
wim | 0:a99bfc8384e4 | 142 | |
wim | 0:a99bfc8384e4 | 143 | |
wim | 0:a99bfc8384e4 | 144 | case '2' : { |
wim | 0:a99bfc8384e4 | 145 | pc.printf("UDC\r\n"); |
wim | 1:73833adc27b1 | 146 | PT6301.cls(); |
wim | 1:73833adc27b1 | 147 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 148 | |
wim | 1:73833adc27b1 | 149 | // Store UDC_idx=0, reserved for Icons on SMTC7140 |
wim | 0:a99bfc8384e4 | 150 | |
wim | 1:73833adc27b1 | 151 | // Store UDC_idx=1, 2 |
wim | 1:73833adc27b1 | 152 | PT6301.setUDC(1, (char *) udc_LAR); // Left Arrow |
wim | 1:73833adc27b1 | 153 | PT6301.setUDC(2, (char *) udc_RAR); // Right Arrow |
wim | 1:73833adc27b1 | 154 | |
wim | 1:73833adc27b1 | 155 | // Show UDC_idx=1, 2 |
wim | 1:73833adc27b1 | 156 | PT6301.locate(0,0); |
wim | 1:73833adc27b1 | 157 | PT6301.putc((char) 1); |
wim | 1:73833adc27b1 | 158 | PT6301.putc((char) 2); |
wim | 1:73833adc27b1 | 159 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 160 | pc.printf("\r\nShow all UDC done\r\n"); |
wim | 0:a99bfc8384e4 | 161 | break; |
wim | 0:a99bfc8384e4 | 162 | } |
wim | 0:a99bfc8384e4 | 163 | |
wim | 0:a99bfc8384e4 | 164 | case '3' : { |
wim | 0:a99bfc8384e4 | 165 | #if(1) |
wim | 0:a99bfc8384e4 | 166 | //test to show all chars |
wim | 0:a99bfc8384e4 | 167 | pc.printf("Show all alpha chars\r\n"); |
wim | 0:a99bfc8384e4 | 168 | wait(1); |
wim | 1:73833adc27b1 | 169 | PT6301.cls(); |
wim | 0:a99bfc8384e4 | 170 | |
wim | 0:a99bfc8384e4 | 171 | for (int i=0; i<26; i++) { |
wim | 1:73833adc27b1 | 172 | PT6301.printf("%c", char(i + 'A')); |
wim | 1:73833adc27b1 | 173 | PT6301.printf("%c", char(i + 'a')); |
wim | 1:73833adc27b1 | 174 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 175 | wait(0.25); |
wim | 0:a99bfc8384e4 | 176 | } |
wim | 0:a99bfc8384e4 | 177 | pc.printf("Show all alpha chars done\r\n"); |
wim | 0:a99bfc8384e4 | 178 | #endif |
wim | 0:a99bfc8384e4 | 179 | break; |
wim | 0:a99bfc8384e4 | 180 | } |
wim | 0:a99bfc8384e4 | 181 | |
wim | 0:a99bfc8384e4 | 182 | case '4': { |
wim | 0:a99bfc8384e4 | 183 | #if(0) |
wim | 0:a99bfc8384e4 | 184 | //test to show all digits (base is 10) |
wim | 0:a99bfc8384e4 | 185 | pc.printf("Show all digits\r\n"); |
wim | 0:a99bfc8384e4 | 186 | wait(1); |
wim | 1:73833adc27b1 | 187 | PT6301.cls(); |
wim | 0:a99bfc8384e4 | 188 | |
wim | 1:73833adc27b1 | 189 | for (int i=0; i<SMTC7140_NR_COLS; i++) { |
wim | 0:a99bfc8384e4 | 190 | |
wim | 0:a99bfc8384e4 | 191 | for (int cnt=0; cnt<10; cnt++) { |
wim | 1:73833adc27b1 | 192 | PT6301.locate(0, i); |
wim | 1:73833adc27b1 | 193 | PT6301.printf("%0d", cnt); |
wim | 1:73833adc27b1 | 194 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 195 | |
wim | 0:a99bfc8384e4 | 196 | // wait(0.5); |
wim | 0:a99bfc8384e4 | 197 | cmd = pc.getc(); // wait for key |
wim | 0:a99bfc8384e4 | 198 | } |
wim | 0:a99bfc8384e4 | 199 | } |
wim | 0:a99bfc8384e4 | 200 | pc.printf("\r\nShow all digits done\r\n"); |
wim | 0:a99bfc8384e4 | 201 | #endif |
wim | 0:a99bfc8384e4 | 202 | |
wim | 0:a99bfc8384e4 | 203 | #if(1) |
wim | 0:a99bfc8384e4 | 204 | //test to show all digits (base is 0x10) |
wim | 0:a99bfc8384e4 | 205 | pc.printf("Show all hex digits\r\n"); |
wim | 0:a99bfc8384e4 | 206 | wait(1); |
wim | 1:73833adc27b1 | 207 | PT6301.cls(); |
wim | 0:a99bfc8384e4 | 208 | |
wim | 1:73833adc27b1 | 209 | PT6301.printf("%010X", 0x0123ABCDEF); |
wim | 1:73833adc27b1 | 210 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 211 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 212 | PT6301.locate(0,0); |
wim | 1:73833adc27b1 | 213 | PT6301.printf("%012X", 0x0); |
wim | 1:73833adc27b1 | 214 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 215 | |
wim | 1:73833adc27b1 | 216 | for (int i=0; i<SMTC7140_NR_COLS; i++) { |
wim | 0:a99bfc8384e4 | 217 | // for (int i=0; i<1; i++) { |
wim | 0:a99bfc8384e4 | 218 | |
wim | 0:a99bfc8384e4 | 219 | for (int cnt=0; cnt<0x10; cnt++) { |
wim | 1:73833adc27b1 | 220 | PT6301.locate(0, i); |
wim | 1:73833adc27b1 | 221 | PT6301.printf("%0X", cnt); |
wim | 1:73833adc27b1 | 222 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 223 | // pc.printf("%0X", cnt); |
wim | 0:a99bfc8384e4 | 224 | // wait(0.5); |
wim | 0:a99bfc8384e4 | 225 | cmd = pc.getc(); // wait for key |
wim | 0:a99bfc8384e4 | 226 | } |
wim | 0:a99bfc8384e4 | 227 | } |
wim | 0:a99bfc8384e4 | 228 | pc.printf("\r\nShow all hex digits done\r\n"); |
wim | 0:a99bfc8384e4 | 229 | #endif |
wim | 0:a99bfc8384e4 | 230 | break; |
wim | 0:a99bfc8384e4 | 231 | } |
wim | 0:a99bfc8384e4 | 232 | |
wim | 0:a99bfc8384e4 | 233 | case '5': { |
wim | 1:73833adc27b1 | 234 | pc.printf("\r\nShow all icon bits\r\n"); |
wim | 1:73833adc27b1 | 235 | // PT6301.cls(); |
wim | 1:73833adc27b1 | 236 | // PT6301.refresh(); |
wim | 1:73833adc27b1 | 237 | |
wim | 1:73833adc27b1 | 238 | // Store UDC_idx=0, reserved for Icons on SMTC7140 |
wim | 1:73833adc27b1 | 239 | // Show UDC_idx=0 on Position (0, 12), ie Grid13 |
wim | 1:73833adc27b1 | 240 | #if(0) |
wim | 1:73833adc27b1 | 241 | //Test version to check all bits |
wim | 1:73833adc27b1 | 242 | for (int i=0; i<5; i++) { |
wim | 1:73833adc27b1 | 243 | char bits = 0x40; |
wim | 1:73833adc27b1 | 244 | |
wim | 1:73833adc27b1 | 245 | for (int cnt=0; cnt<7; cnt++) { |
wim | 1:73833adc27b1 | 246 | PT6301.setIconGrid13( (i << 8) | bits); // Test |
wim | 1:73833adc27b1 | 247 | pc.printf("Showing icon [%d] => bits 0x%0X\r\n", i, bits); |
wim | 1:73833adc27b1 | 248 | bits = bits >> 1; |
wim | 1:73833adc27b1 | 249 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 250 | } |
wim | 1:73833adc27b1 | 251 | } |
wim | 1:73833adc27b1 | 252 | pc.printf("\r\nShow all icon bits done\r\n"); |
wim | 1:73833adc27b1 | 253 | #else |
wim | 1:73833adc27b1 | 254 | pc.printf("\r\nShow all icon bits\r\n"); |
wim | 1:73833adc27b1 | 255 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 256 | PT6301.setIconGrid13(SMTC7140_ICON_DOLBY); |
wim | 1:73833adc27b1 | 257 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 258 | PT6301.setIconGrid13(SMTC7140_ICON_PLUS); |
wim | 1:73833adc27b1 | 259 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 260 | PT6301.setIconGrid13(SMTC7140_ICON_HD); |
wim | 1:73833adc27b1 | 261 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 262 | PT6301.setIconGrid13(SMTC7140_ICON_CLOCK); |
wim | 1:73833adc27b1 | 263 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 264 | PT6301.setIconGrid13(SMTC7140_ICON_REC); |
wim | 1:73833adc27b1 | 265 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 266 | PT6301.setIconGrid13(SMTC7140_ICON_MAIL); |
wim | 1:73833adc27b1 | 267 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 268 | |
wim | 1:73833adc27b1 | 269 | PT6301.clrIconGrid13(SMTC7140_ICON_DOLBY); |
wim | 1:73833adc27b1 | 270 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 271 | PT6301.clrIconGrid13(SMTC7140_ICON_PLUS); |
wim | 1:73833adc27b1 | 272 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 273 | PT6301.clrIconGrid13(SMTC7140_ICON_HD); |
wim | 1:73833adc27b1 | 274 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 275 | PT6301.clrIconGrid13(SMTC7140_ICON_CLOCK); |
wim | 1:73833adc27b1 | 276 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 277 | PT6301.clrIconGrid13(SMTC7140_ICON_REC); |
wim | 1:73833adc27b1 | 278 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 279 | PT6301.clrIconGrid13(SMTC7140_ICON_MAIL); |
wim | 1:73833adc27b1 | 280 | cmd = pc.getc(); // wait for key |
wim | 1:73833adc27b1 | 281 | |
wim | 1:73833adc27b1 | 282 | pc.printf("\r\nShow all icon bits done\r\n"); |
wim | 1:73833adc27b1 | 283 | #endif |
wim | 0:a99bfc8384e4 | 284 | break; |
wim | 0:a99bfc8384e4 | 285 | } |
wim | 0:a99bfc8384e4 | 286 | |
wim | 0:a99bfc8384e4 | 287 | case '6': { |
wim | 0:a99bfc8384e4 | 288 | pc.printf("Show counter\r\n"); |
wim | 1:73833adc27b1 | 289 | PT6301.cls(false); // clear all, preserve Icons |
wim | 0:a99bfc8384e4 | 290 | |
wim | 0:a99bfc8384e4 | 291 | #if(1) |
wim | 1:73833adc27b1 | 292 | PT6301.locate(0, 0); |
wim | 1:73833adc27b1 | 293 | PT6301.printf("Cnt="); |
wim | 0:a99bfc8384e4 | 294 | for (int cnt=0; cnt<=0xFF; cnt++) { |
wim | 1:73833adc27b1 | 295 | PT6301.locate(0, 8); |
wim | 1:73833adc27b1 | 296 | PT6301.printf("%02X", cnt); |
wim | 1:73833adc27b1 | 297 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 298 | wait(0.2); |
wim | 0:a99bfc8384e4 | 299 | } |
wim | 0:a99bfc8384e4 | 300 | #endif |
wim | 0:a99bfc8384e4 | 301 | break; |
wim | 0:a99bfc8384e4 | 302 | } |
wim | 0:a99bfc8384e4 | 303 | |
wim | 0:a99bfc8384e4 | 304 | case '7': { |
wim | 0:a99bfc8384e4 | 305 | pc.printf("Show floats\r\n"); |
wim | 0:a99bfc8384e4 | 306 | |
wim | 1:73833adc27b1 | 307 | PT6301.cls(false); // clear all, preserve Icons |
wim | 1:73833adc27b1 | 308 | PT6301.printf("%1.7f", -0.1234567); // test decimal point display |
wim | 1:73833adc27b1 | 309 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 310 | wait(0.5); |
wim | 1:73833adc27b1 | 311 | PT6301.cls(false); // clear all, preserve Icons |
wim | 1:73833adc27b1 | 312 | PT6301.printf("%3.6f", 123.456789); // test decimal point display |
wim | 1:73833adc27b1 | 313 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 314 | break; |
wim | 0:a99bfc8384e4 | 315 | } |
wim | 0:a99bfc8384e4 | 316 | |
wim | 0:a99bfc8384e4 | 317 | case '8': { |
wim | 0:a99bfc8384e4 | 318 | |
wim | 0:a99bfc8384e4 | 319 | #if(1) |
wim | 0:a99bfc8384e4 | 320 | //test to show KITT |
wim | 0:a99bfc8384e4 | 321 | pc.printf("Show KITT scanner\r\n"); |
wim | 0:a99bfc8384e4 | 322 | |
wim | 0:a99bfc8384e4 | 323 | // 0123456789 |
wim | 0:a99bfc8384e4 | 324 | const char KITT[][11] = {{"8 "}, |
wim | 0:a99bfc8384e4 | 325 | {"38 "}, |
wim | 0:a99bfc8384e4 | 326 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 327 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 328 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 329 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 330 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 331 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 332 | {" 38 "}, |
wim | 0:a99bfc8384e4 | 333 | {" 38"}, |
wim | 0:a99bfc8384e4 | 334 | {" 3"}, |
wim | 0:a99bfc8384e4 | 335 | {" "}, |
wim | 0:a99bfc8384e4 | 336 | {" 8"}, |
wim | 0:a99bfc8384e4 | 337 | {" 8E"}, |
wim | 0:a99bfc8384e4 | 338 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 339 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 340 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 341 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 342 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 343 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 344 | {" 8E "}, |
wim | 0:a99bfc8384e4 | 345 | {"8E "}, |
wim | 0:a99bfc8384e4 | 346 | {"E "}, |
wim | 0:a99bfc8384e4 | 347 | {" "} |
wim | 0:a99bfc8384e4 | 348 | }; |
wim | 0:a99bfc8384e4 | 349 | |
wim | 1:73833adc27b1 | 350 | PT6301.cls(false); // clear all, preserve Icons |
wim | 0:a99bfc8384e4 | 351 | |
wim | 0:a99bfc8384e4 | 352 | while (!pc.readable()) { // wait for key |
wim | 0:a99bfc8384e4 | 353 | for (int i=0; i < (sizeof(KITT) / 11) ; i++) { |
wim | 1:73833adc27b1 | 354 | PT6301.locate(0,0); |
wim | 1:73833adc27b1 | 355 | PT6301.printf("%s", KITT[i]); |
wim | 1:73833adc27b1 | 356 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 357 | wait(0.1); |
wim | 0:a99bfc8384e4 | 358 | } |
wim | 0:a99bfc8384e4 | 359 | } |
wim | 0:a99bfc8384e4 | 360 | cmd = pc.getc(); // read key |
wim | 0:a99bfc8384e4 | 361 | pc.printf("Show KITT done\r\n"); |
wim | 0:a99bfc8384e4 | 362 | #endif |
wim | 0:a99bfc8384e4 | 363 | break; |
wim | 0:a99bfc8384e4 | 364 | } |
wim | 0:a99bfc8384e4 | 365 | |
wim | 0:a99bfc8384e4 | 366 | case '9': { |
wim | 1:73833adc27b1 | 367 | PT6301.cls(true); // clear all, including Icons |
wim | 1:73833adc27b1 | 368 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 369 | break; |
wim | 0:a99bfc8384e4 | 370 | } |
wim | 0:a99bfc8384e4 | 371 | |
wim | 0:a99bfc8384e4 | 372 | case 'A': { |
wim | 1:73833adc27b1 | 373 | pc.printf("Display All Off / Normal\n\r"); |
wim | 1:73833adc27b1 | 374 | PT6301.setDisplay(false); |
wim | 1:73833adc27b1 | 375 | wait(1.0); |
wim | 1:73833adc27b1 | 376 | PT6301.setDisplay(true); |
wim | 1:73833adc27b1 | 377 | wait(1.0); |
wim | 0:a99bfc8384e4 | 378 | break; |
wim | 0:a99bfc8384e4 | 379 | } |
wim | 0:a99bfc8384e4 | 380 | |
wim | 0:a99bfc8384e4 | 381 | case 'B': { |
wim | 1:73833adc27b1 | 382 | pc.printf("Display All On / Normal\n\r"); |
wim | 1:73833adc27b1 | 383 | PT6301.setDisplayTest(true); |
wim | 1:73833adc27b1 | 384 | wait(1.0); |
wim | 1:73833adc27b1 | 385 | PT6301.setDisplayTest(false); |
wim | 1:73833adc27b1 | 386 | wait(1.0); |
wim | 0:a99bfc8384e4 | 387 | break; |
wim | 0:a99bfc8384e4 | 388 | } |
wim | 0:a99bfc8384e4 | 389 | |
wim | 0:a99bfc8384e4 | 390 | case 'C': { |
wim | 1:73833adc27b1 | 391 | PT6301.cls(false); // clear all, preserve Icons |
wim | 1:73833adc27b1 | 392 | // PT6301.printf("Bye"); |
wim | 1:73833adc27b1 | 393 | // "0123456789AB"); |
wim | 1:73833adc27b1 | 394 | PT6301.printf("Stack...\r\n"); |
wim | 1:73833adc27b1 | 395 | PT6301.printf(" ..Overflow"); |
wim | 1:73833adc27b1 | 396 | PT6301.refresh(); |
wim | 0:a99bfc8384e4 | 397 | break; |
wim | 0:a99bfc8384e4 | 398 | } |
wim | 0:a99bfc8384e4 | 399 | |
wim | 0:a99bfc8384e4 | 400 | default : { |
wim | 0:a99bfc8384e4 | 401 | break; |
wim | 0:a99bfc8384e4 | 402 | } |
wim | 0:a99bfc8384e4 | 403 | |
wim | 0:a99bfc8384e4 | 404 | } //switch cmd |
wim | 0:a99bfc8384e4 | 405 | |
wim | 0:a99bfc8384e4 | 406 | myled = !myled; |
wim | 0:a99bfc8384e4 | 407 | wait(0.3); |
wim | 0:a99bfc8384e4 | 408 | } |
wim | 0:a99bfc8384e4 | 409 | } |
wim | 0:a99bfc8384e4 | 410 | #endif |
wim | 0:a99bfc8384e4 | 411 | |
wim | 0:a99bfc8384e4 | 412 | |
wim | 1:73833adc27b1 | 413 | #if (PT6301_TEST == 1) |
wim | 0:a99bfc8384e4 | 414 | |
wim | 1:73833adc27b1 | 415 | // PT6301 Bare Metal Test |
wim | 0:a99bfc8384e4 | 416 | #include "mbed.h" |
wim | 1:73833adc27b1 | 417 | #include "PT6301.h" |
wim | 0:a99bfc8384e4 | 418 | |
wim | 0:a99bfc8384e4 | 419 | DigitalOut myled(LED1); |
wim | 0:a99bfc8384e4 | 420 | Serial pc(USBTX, USBRX); |
wim | 0:a99bfc8384e4 | 421 | |
wim | 1:73833adc27b1 | 422 | // PT6301 declaration, Default setting 20 Grids @ 5x7 Segments for 2 rows of characters |
wim | 1:73833adc27b1 | 423 | PT6301 PT6301(p5, p7, p8, p9); // DI, CLK, CS, RST |
wim | 0:a99bfc8384e4 | 424 | |
wim | 0:a99bfc8384e4 | 425 | int main() { |
wim | 1:73833adc27b1 | 426 | pc.printf("Hello World: PT6301 test\n\r"); |
wim | 0:a99bfc8384e4 | 427 | |
wim | 1:73833adc27b1 | 428 | // PT6301.writeData((char)'H', 0, 0); |
wim | 1:73833adc27b1 | 429 | // PT6301.writeData((char)'e', 0, 1); |
wim | 1:73833adc27b1 | 430 | // PT6301.writeData((char)'l', 0, 2); |
wim | 1:73833adc27b1 | 431 | // PT6301.writeData((char)'l', 0, 3); |
wim | 1:73833adc27b1 | 432 | // PT6301.writeData((char)'o', 0, 4); |
wim | 1:73833adc27b1 | 433 | PT6301.printf("Hello World"); |
wim | 1:73833adc27b1 | 434 | PT6301.refresh(); |
wim | 1:73833adc27b1 | 435 | |
wim | 0:a99bfc8384e4 | 436 | while(1) { |
wim | 0:a99bfc8384e4 | 437 | myled = !myled; |
wim | 0:a99bfc8384e4 | 438 | wait(1); |
wim | 0:a99bfc8384e4 | 439 | } |
wim | 0:a99bfc8384e4 | 440 | } |
wim | 0:a99bfc8384e4 | 441 | #endif |