
Test for PT6301 VFD. First release.
Revision 1:73833adc27b1, committed 2021-06-13
- Comitter:
- wim
- Date:
- Sun Jun 13 13:15:06 2021 +0000
- Parent:
- 0:a99bfc8384e4
- Commit message:
- Example for PT6301 VFD lib. First release.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PT6301.lib Sun Jun 13 13:15:06 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/wim/code/PT6302/#aa0195b0f83c
--- a/PT6302.lib Sun Dec 03 18:03:51 2017 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -https://os.mbed.com/users/wim/code/PT6302/#ecc29c13a997
--- a/main.cpp Sun Dec 03 18:03:51 2017 +0000 +++ b/main.cpp Sun Jun 13 13:15:06 2021 +0000 @@ -1,7 +1,7 @@ -/* mbed PT6302 Test program, for Princeton PT6302 VFD controller - * Note the PT6302 is identical to the OKI ML9208 +/* mbed PT6301 Test program, for Princeton PT6301 VFD controller + * The controller is used by Futaba 'Chip In Glass' (CIG) VFD tubes. * - * Copyright (c) 2017, v01: WH, Initial version + * Copyright (c) 2021, v01: WH, Initial version * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -22,22 +22,77 @@ * THE SOFTWARE. */ #include "mbed.h" -#include "PT6302.h" - -// Select one of the testboards for Princeton PT6302 VFD controller -#include "PT6302_Config.h" +#include "PT6301.h" -#if (HANNSTAR_TEST == 1) +// Select one of the testboards for Princeton PT6301 VFD controller +#include "PT6301_Config.h" -// PT6302 Test -#include "mbed.h" -#include "PT6302.h" + +#if (SMTG7400_TEST == 1) DigitalOut myled(LED1); Serial pc(USBTX, USBRX); -//PT6302_HANNSTAR PT6302(p5, p7, p8); -PT6302_HANNSTAR PT6302(p11, p13, p14); +// PT6301_SMTG7400 declaration, Default setting 16 Grids @ 5x7 Segments, with 4 additional Icons and 1 Row +PT6301_SMTG7400 PT6301(p5, p7, p8, p9); // DI, CLK, CS, RST + +int main() { + pc.printf("Hello World: PT6301_SMTG7400 test\n\r"); + +// PT6301.printf("Hello World"); + PT6301.printf("Hello World %1.2f", 1.23); + PT6301.refresh(); + + PT6301.setBrightness(PT6301_BRT_6); + wait(1); + PT6301.setBrightness(PT6301_BRT_DEF); + wait(1); + + PT6301.setIcon(SMTG7400_ICON_OFFLINE); + PT6301.setIcon(SMTG7400_ICON_WIFI); + PT6301.setIcon(SMTG7400_ICON_PHONE); + PT6301.setIcon(SMTG7400_ICON_REC); + PT6301.refresh(); + wait(1); + + PT6301.cls(); +// PT6301.locate(0, 0); + PT6301.setUDC(0, (char*) udc_LAR); + PT6301.setUDC(1, (char*) udc_RAR); + PT6301.putc(char(0)); + PT6301.putc(char(1)); + PT6301.refresh(); + wait(1); + + while(1) { + myled = !myled; + PT6301.clrIcon(SMTG7400_ICON_OFFLINE); + PT6301.refresh(); + wait(1); + + myled = !myled; + PT6301.setIcon(SMTG7400_ICON_OFFLINE); + PT6301.refresh(); + wait(1); + } +} +#endif + + + + + +#if (SMTC7140_TEST == 1) + +// PT6301 Test +#include "mbed.h" +#include "PT6301.h" + +DigitalOut myled(LED1); +Serial pc(USBTX, USBRX); + +// PT6301_SMTC7140 declaration, Default setting 12 Grids @ 5x7 Segments, without additional Icons, 2 Rows. Separate Grid13 for Icons +PT6301_SMTC7140 PT6301(p5, p7, p8, p9); void show_menu() { // pc.printf("0: Exit\n\r"); @@ -45,28 +100,30 @@ pc.printf("2: Show UDC chars\n\r"); pc.printf("3: Show all chars\n\r"); pc.printf("4: Show all digits\n\r"); -// pc.printf("5: Show all icons\n\r"); + pc.printf("5: Show all icons\n\r"); pc.printf("6: Counter\n\r"); pc.printf("7: Floats\n\r"); pc.printf("8: Kitt\n\r"); - pc.printf("9: Cls\n\r"); - pc.printf("A/B: LED On/Off\n\r"); + pc.printf("9: Cls\n\r"); + pc.printf("A: Display All Off / Normal\n\r"); + pc.printf("B: Display All On / Normal\n\r"); pc.printf("C: Bye\n\r"); } int main() { - pc.printf("Hello World: PT6302 Hannstar test\n\r"); - - PT6302.locate(0); - PT6302.printf("Hello mbed"); + pc.printf("Hello World: PT6301 SMTC7140 test\n\r"); - PT6302.setBrightness(PT6302_BRT_7); + PT6301.locate(0, 0); + PT6301.printf("Hello mbed"); + PT6301.refresh(); wait(1); - PT6302.setBrightness(PT6302_BRT_0); + + PT6301.setBrightness(PT6301_BRT_7); wait(1); - PT6302.setBrightness(PT6302_BRT_DEF); - wait(1); +// PT6301.setBrightness(PT6301_BRT_0); +// wait(1); + PT6301.setBrightness(PT6301_BRT_DEF); char cmd, cmd2 = '0'; while (1) { @@ -77,25 +134,30 @@ switch (cmd2) { case '1' : { pc.printf("all\r\n"); - PT6302.cls(); - PT6302.printf("Hello mbed"); + PT6301.cls(); + PT6301.printf("Hello mbed"); + PT6301.refresh(); break; } case '2' : { pc.printf("UDC\r\n"); - PT6302.cls(); - - // Store UDC_idx=0, 1 - PT6302.setUDC(0, (char *) udc_LAR); // Left Arrow - PT6302.setUDC(1, (char *) udc_RAR); // Right Arrow + PT6301.cls(); + PT6301.refresh(); + + // Store UDC_idx=0, reserved for Icons on SMTC7140 - // Show UDC_idx=0, 1 - PT6302.locate(0); - PT6302.putc((char) 0); - PT6302.putc((char) 1); - + // Store UDC_idx=1, 2 + PT6301.setUDC(1, (char *) udc_LAR); // Left Arrow + PT6301.setUDC(2, (char *) udc_RAR); // Right Arrow + + // Show UDC_idx=1, 2 + PT6301.locate(0,0); + PT6301.putc((char) 1); + PT6301.putc((char) 2); + PT6301.refresh(); + pc.printf("\r\nShow all UDC done\r\n"); break; } @@ -104,11 +166,12 @@ //test to show all chars pc.printf("Show all alpha chars\r\n"); wait(1); - PT6302.cls(); + PT6301.cls(); for (int i=0; i<26; i++) { - PT6302.printf("%c", char(i + 'A')); - PT6302.printf("%c", char(i + 'a')); + PT6301.printf("%c", char(i + 'A')); + PT6301.printf("%c", char(i + 'a')); + PT6301.refresh(); wait(0.25); } pc.printf("Show all alpha chars done\r\n"); @@ -121,13 +184,14 @@ //test to show all digits (base is 10) pc.printf("Show all digits\r\n"); wait(1); - PT6302.cls(); + PT6301.cls(); - for (int i=0; i<PT6302_NR_DIGITS; i++) { + for (int i=0; i<SMTC7140_NR_COLS; i++) { for (int cnt=0; cnt<10; cnt++) { - PT6302.locate(i); - PT6302.printf("%0d", cnt); + PT6301.locate(0, i); + PT6301.printf("%0d", cnt); + PT6301.refresh(); // wait(0.5); cmd = pc.getc(); // wait for key @@ -140,19 +204,22 @@ //test to show all digits (base is 0x10) pc.printf("Show all hex digits\r\n"); wait(1); - PT6302.cls(); + PT6301.cls(); - PT6302.printf("%010X", 0x0123ABCDEF); + PT6301.printf("%010X", 0x0123ABCDEF); + PT6301.refresh(); cmd = pc.getc(); // wait for key - PT6302.locate(0); - PT6302.printf("%016X", 0x0); + PT6301.locate(0,0); + PT6301.printf("%012X", 0x0); + PT6301.refresh(); - for (int i=0; i<HANNSTAR_NR_DIGITS; i++) { + for (int i=0; i<SMTC7140_NR_COLS; i++) { // for (int i=0; i<1; i++) { for (int cnt=0; cnt<0x10; cnt++) { - PT6302.locate(i); - PT6302.printf("%0X", cnt); + PT6301.locate(0, i); + PT6301.printf("%0X", cnt); + PT6301.refresh(); // pc.printf("%0X", cnt); // wait(0.5); cmd = pc.getc(); // wait for key @@ -164,19 +231,70 @@ } case '5': { + pc.printf("\r\nShow all icon bits\r\n"); +// PT6301.cls(); +// PT6301.refresh(); + + // Store UDC_idx=0, reserved for Icons on SMTC7140 + // Show UDC_idx=0 on Position (0, 12), ie Grid13 +#if(0) + //Test version to check all bits + for (int i=0; i<5; i++) { + char bits = 0x40; + + for (int cnt=0; cnt<7; cnt++) { + PT6301.setIconGrid13( (i << 8) | bits); // Test + pc.printf("Showing icon [%d] => bits 0x%0X\r\n", i, bits); + bits = bits >> 1; + cmd = pc.getc(); // wait for key + } + } + pc.printf("\r\nShow all icon bits done\r\n"); +#else + pc.printf("\r\nShow all icon bits\r\n"); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_DOLBY); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_PLUS); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_HD); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_CLOCK); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_REC); + cmd = pc.getc(); // wait for key + PT6301.setIconGrid13(SMTC7140_ICON_MAIL); + cmd = pc.getc(); // wait for key + + PT6301.clrIconGrid13(SMTC7140_ICON_DOLBY); + cmd = pc.getc(); // wait for key + PT6301.clrIconGrid13(SMTC7140_ICON_PLUS); + cmd = pc.getc(); // wait for key + PT6301.clrIconGrid13(SMTC7140_ICON_HD); + cmd = pc.getc(); // wait for key + PT6301.clrIconGrid13(SMTC7140_ICON_CLOCK); + cmd = pc.getc(); // wait for key + PT6301.clrIconGrid13(SMTC7140_ICON_REC); + cmd = pc.getc(); // wait for key + PT6301.clrIconGrid13(SMTC7140_ICON_MAIL); + cmd = pc.getc(); // wait for key + + pc.printf("\r\nShow all icon bits done\r\n"); +#endif break; } case '6': { pc.printf("Show counter\r\n"); - PT6302.cls(); // clear all, preserve Icons + PT6301.cls(false); // clear all, preserve Icons #if(1) - PT6302.locate(0); - PT6302.printf("Cnt="); + PT6301.locate(0, 0); + PT6301.printf("Cnt="); for (int cnt=0; cnt<=0xFF; cnt++) { - PT6302.locate(8); - PT6302.printf("%02X", cnt); + PT6301.locate(0, 8); + PT6301.printf("%02X", cnt); + PT6301.refresh(); wait(0.2); } #endif @@ -186,11 +304,13 @@ case '7': { pc.printf("Show floats\r\n"); - PT6302.cls(); // clear all, preserve Icons - PT6302.printf("%1.7f", -0.1234567); // test decimal point display + PT6301.cls(false); // clear all, preserve Icons + PT6301.printf("%1.7f", -0.1234567); // test decimal point display + PT6301.refresh(); wait(0.5); - PT6302.cls(); // clear all, preserve Icons - PT6302.printf("%3.6f", 123.456789); // test decimal point display + PT6301.cls(false); // clear all, preserve Icons + PT6301.printf("%3.6f", 123.456789); // test decimal point display + PT6301.refresh(); break; } @@ -227,12 +347,13 @@ {" "} }; - PT6302.cls(); // clear all, preserve Icons + PT6301.cls(false); // clear all, preserve Icons while (!pc.readable()) { // wait for key for (int i=0; i < (sizeof(KITT) / 11) ; i++) { - PT6302.locate(0); - PT6302.printf("%s", KITT[i]); + PT6301.locate(0,0); + PT6301.printf("%s", KITT[i]); + PT6301.refresh(); wait(0.1); } } @@ -242,28 +363,37 @@ break; } - case '9': { - PT6302.cls(true); // clear all, including Icons + PT6301.cls(true); // clear all, including Icons + PT6301.refresh(); break; } case 'A': { - pc.printf("LED On\r\n"); - PT6302.setPort(0x02); + pc.printf("Display All Off / Normal\n\r"); + PT6301.setDisplay(false); + wait(1.0); + PT6301.setDisplay(true); + wait(1.0); break; } case 'B': { - pc.printf("LED Off\r\n"); - PT6302.setPort(0x00); + pc.printf("Display All On / Normal\n\r"); + PT6301.setDisplayTest(true); + wait(1.0); + PT6301.setDisplayTest(false); + wait(1.0); break; } case 'C': { - PT6302.cls(); // clear all, preserve Icons - PT6302.printf("Bye"); - + PT6301.cls(false); // clear all, preserve Icons +// PT6301.printf("Bye"); +// "0123456789AB"); + PT6301.printf("Stack...\r\n"); + PT6301.printf(" ..Overflow"); + PT6301.refresh(); break; } @@ -280,29 +410,29 @@ #endif -#if (PT6302_TEST == 1) +#if (PT6301_TEST == 1) -// PT6302 Bare Metal Test +// PT6301 Bare Metal Test #include "mbed.h" -#include "PT6302.h" +#include "PT6301.h" DigitalOut myled(LED1); Serial pc(USBTX, USBRX); -// PT6302 declaration, Default setting 16 Grids @ 35 Segments -PT6302 PT6302(p5, p7, p8); // DI, CLK, CS +// PT6301 declaration, Default setting 20 Grids @ 5x7 Segments for 2 rows of characters +PT6301 PT6301(p5, p7, p8, p9); // DI, CLK, CS, RST int main() { - pc.printf("Hello World: PT6302 test\n\r"); + pc.printf("Hello World: PT6301 test\n\r"); - PT6302.writeData((char)'H', 9); - PT6302.writeData((char)'e', 8); - PT6302.writeData((char)'l', 7); - PT6302.writeData((char)'l', 6); - PT6302.writeData((char)'o', 5); - - PT6302.setBlink(true, (PT6302_GR10 | PT6302_GR9 | PT6302_GR8 | PT6302_GR7 | PT6302_GR6) ); - +// PT6301.writeData((char)'H', 0, 0); +// PT6301.writeData((char)'e', 0, 1); +// PT6301.writeData((char)'l', 0, 2); +// PT6301.writeData((char)'l', 0, 3); +// PT6301.writeData((char)'o', 0, 4); + PT6301.printf("Hello World"); + PT6301.refresh(); + while(1) { myled = !myled; wait(1);