Wim Huiskamp
/
mbed_PT6961
Test program for Princeton PT6961 LED controller library.
See here for more information.
Diff: main.cpp
- Revision:
- 2:3bc72b8f5481
- Parent:
- 1:59c864633347
- Child:
- 4:bedc75e6561a
--- a/main.cpp Sun Aug 23 14:42:54 2015 +0000 +++ b/main.cpp Sun Sep 20 13:29:12 2015 +0000 @@ -25,16 +25,17 @@ Serial pc(USBTX, USBRX); DigitalOut myled(LED1); -// DisplayData_t size is 12 bytes (6 digits max 12 segments) OR 14 bytes (7 digits at max 11 segments) +// DisplayData_t size is 12 bytes (6 digits @ 12 segments) OR 14 bytes (7 digits @ 11 segments) PT6961::DisplayData_t mbed_str = {0xDA,0x00, 0x7C,0x00, 0x3C,0x01, 0xF6,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00}; PT6961::DisplayData_t all_str = {0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F, 0xFF,0x0F}; PT6961::DisplayData_t bye_str = {0x7C,0x00, 0xEC,0x00, 0x3C,0x01, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00}; PT6961::DisplayData_t hello_str = {0xDC,0x00, 0x3C,0x01, 0x38,0x00, 0x38,0x00, 0xF8,0x01, 0x00,0x00, 0x00,0x00}; +PT6961::DisplayData_t tst_str; // KeyData_t size is 5 bytes PT6961::KeyData_t keydata; -// PT6191 declaration, Default setting 7 Digits, 11 Segments +// PT6191 declaration, Default setting 7 Digits @ 11 Segments PT6961 pt6961(p5,p6,p7, p8); int main() { @@ -54,7 +55,7 @@ while (1) { // Check and read keydata - if (pt6961.readKeys(&keydata)) { + if (pt6961.getKeys(&keydata)) { pc.printf("Keydata 0..4 = 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3], keydata[4]); if (keydata[0] == 0x10) { //sw2 @@ -76,6 +77,49 @@ pt6961.cls(); pt6961.writeData(bye_str); } + + if (keydata[0] == 0x04) { //sw11 + pt6961.cls(); + + for (int idx=0; idx < PT6961_DISPLAY_MEM;idx++){ + tst_str[idx]=0x00; + } + tst_str[0]=0x01; //RA + tst_str[2]=0x01; //M + pt6961.writeData(tst_str); + } + + if (keydata[0] == 0x08) { //sw10 + pt6961.cls(); + + for (int idx=0; idx < PT6961_DISPLAY_MEM;idx++){ + tst_str[idx]=0x00; + } + tst_str[6]=0x01; //HD + tst_str[8]=0x01; //D + pt6961.writeData(tst_str); + } + + if (keydata[1] == 0x01) { //sw9 + pt6961.cls(); + + for (int idx=0; idx < PT6961_DISPLAY_MEM;idx++){ + tst_str[idx]=0x00; + } + tst_str[8]=0x01; //D + tst_str[10]=0x01; //VD + pt6961.writeData(tst_str); + } + + if (keydata[0] == 0x01) { //sw7 + pt6961.cls(); + + for (int idx=0; idx < PT6961_DISPLAY_MEM;idx++){ + tst_str[idx]=0x00; + } + tst_str[12]=0x20; //clock + pt6961.writeData(tst_str); + } } //if