13 #include "hp34comm.h" |
13 #include "hp34comm.h" |
14 |
14 |
15 #include "QEI.h" |
15 #include "QEI.h" |
16 #include "Keypad.h" |
16 #include "Keypad.h" |
17 |
17 |
18 /******************************************************/ |
|
19 /* L432KC */ |
|
20 /******************************************************/ |
|
21 #if (defined STM32L432xx) |
|
22 // display |
|
23 #define DSP_MOSI PA_7 //A6 |
|
24 #define DSP_MISO PA_6 //A5 |
|
25 #define DSP_SCLK PA_5 //A4 |
|
26 #define DSP_CS PB_0 //D3 |
|
27 #define DSP_RST PB_5 //D11 |
|
28 #define DSP_DC PB_4 //D12 |
|
29 |
|
30 // UART for RX (CPU->DP) and TX (DP->CPU) combined |
|
31 #define HP_TX PA_9 // serial1 TX |
|
32 #define HP_RX PA_10 // serial1 RX |
|
33 |
|
34 // RST pin (handle this by hand) |
|
35 #define HP_RST PA_0 |
|
36 |
|
37 // misc |
|
38 #define DBGPIN NC |
|
39 |
|
40 // encoder |
|
41 #define KP_ENC1 PA_8 |
|
42 #define KP_ENC2 PA_11 |
|
43 |
|
44 // keypad |
|
45 #define KP_R0 PA_1 |
|
46 #define KP_R1 PA_3 |
|
47 #define KP_R2 PA_4 |
|
48 #define KP_R3 PA_12 |
|
49 |
|
50 #define KP_C0 D4 |
|
51 #define KP_C1 D5 |
|
52 #define KP_C2 D6 |
|
53 #define KP_C3 D7 |
|
54 #define KP_C4 D8 |
|
55 |
18 |
56 /******************************************************/ |
19 /******************************************************/ |
57 /* F446RE */ |
20 /* F446RE */ |
58 /******************************************************/ |
21 /******************************************************/ |
59 #elif defined STM32F446xx |
22 #if defined STM32F446xx |
60 // UART |
23 // UART |
61 // USBTX PA_2 |
24 // USBTX PA_2 |
62 // USBRX PA_3 |
25 // USBRX PA_3 |
63 // display |
26 // display |
64 #define DSP_MOSI PB_15 // blue |
27 #define DSP_MOSI PB_15 // blue |
65 #define DSP_MISO NC |
28 #define DSP_MISO PB_14 // NC |
66 #define DSP_SCLK PB_13 // yellow |
29 #define DSP_SCLK PB_13 // yellow |
67 #define DSP_CS PB_12 // green |
30 #define DSP_CS PB_12 // green |
68 #define DSP_RST PB_5 // green |
31 #define DSP_RST PB_5 // green |
69 #define DSP_DC PB_4 // red |
32 #define DSP_DC PB_4 // red |
70 |
33 |
243 |
239 |
244 static const FLAG flags[] = |
240 static const FLAG flags[] = |
245 { |
241 { |
246 // flag, zone, x0, y0, reverse, msg, icon |
242 // flag, zone, x0, y0, reverse, msg, icon |
247 // right-side icons area |
243 // right-side icons area |
248 { 0x00, 246, 0, false, NULL, icon_alarm}, // F1.0 |
244 { 0x00, 246, 0, false, NULL, icon_alarm}, // F1.0 |
249 { 0x01, 246, 11, false, NULL, icon_curve}, // F1.1 |
245 { 0x01, 246, 11, false, NULL, icon_curve}, // F1.1 |
250 |
246 |
251 // F1.2 == Channel frame |
247 // F1.2 == Channel frame |
252 { 0x03, 197, 27, false, "Channel"}, // F1.3 |
248 { 0x03, 197, 27, false, "Channel"}, // F1.3 |
253 // F1.7 == Alarm frame |
249 // F1.7 == Alarm frame |
254 |
|
255 |
250 |
256 { 0x34, 0, 28+8, false, "MON"}, // F4.4 |
251 { 0x34, 0, 28+8, false, "MON"}, // F4.4 |
257 { 0x33, 0, 28+16, false, "VIEW"}, // F4.3 |
252 { 0x33, 0, 28+16, false, "VIEW"}, // F4.3 |
258 { 0x35, 0, 28, true, "SCAN"}, // F4.5 |
253 { 0x35, 0, 28, true, "SCAN"}, // F4.5 |
259 { 0x36, 0, 28+25, true, "CONFIG"}, // F4.6 |
254 { 0x36, 0, 28+25, true, "CONFIG"}, // F4.6 |
488 if (mask == 0) { |
484 if (mask == 0) { |
489 mask = 1; |
485 mask = 1; |
490 } |
486 } |
491 */ |
487 */ |
492 pulse(0, false); |
488 pulse(0, false); |
493 Thread::wait(30); |
489 |
|
490 ThisThread::sleep_for(30); |
494 } |
491 } |
495 } |
492 } |
496 |
493 |
497 void show(uint8_t cmd, const char *intxt, uint8_t nchar=0) |
494 void show(uint8_t cmd, const char *intxt, uint8_t nchar=0) |
498 { |
495 { |
499 uint8_t i, len; |
496 uint8_t i; |
|
497 // uint8_t len; |
500 uint16_t bgcolor, fgcolor; |
498 uint16_t bgcolor, fgcolor; |
501 char *oldv; |
499 char *oldv; |
502 char *txt, *txtp; |
500 // char *txt; |
|
501 char *txtp; |
|
502 static char txt[256]; |
503 |
503 |
504 |
504 |
505 if (cmd == 0xFF) // cls |
505 if (cmd == 0xFF) // cls |
506 { |
506 { |
507 dsp->clrbuff(); |
507 dsp->clrbuff(); |
508 } |
508 } |
509 else |
509 else |
510 { |
510 { |
511 txt = (char *)malloc(strlen(intxt)+1); |
511 //txt = (char *)malloc(strlen(intxt)+1); |
512 strcpy(txt, intxt); |
512 strcpy(txt, intxt); |
513 txtp = txt; |
513 txtp = txt; |
514 |
514 |
515 pulse(1, true); |
515 pulse(1, true); |
516 |
516 |
517 len = MAX_BUFF; |
517 // len = MAX_BUFF; |
518 |
518 |
519 for (i=0; i<sizeof(table)/sizeof(table[0]); ++i) { |
519 for (i=0; i<sizeof(table)/sizeof(table[0]); ++i) { |
520 if (table[i].cmd == cmd) { |
520 if (table[i].cmd == cmd) { |
521 bgcolor = table[i].bgcolor; |
521 bgcolor = table[i].bgcolor; |
522 fgcolor = table[i].color; |
522 fgcolor = table[i].color; |
525 dsp->set_font((unsigned char*) table[i].font); |
525 dsp->set_font((unsigned char*) table[i].font); |
526 oldv = table[i].buffer; |
526 oldv = table[i].buffer; |
527 |
527 |
528 dsp->locate(table[i].x0, table[i].y0); |
528 dsp->locate(table[i].x0, table[i].y0); |
529 |
529 |
530 if (table[i].fmt & 0x01 ) // ASCII text |
530 if (table[i].fmt & 0x01) // ASCII text |
531 { |
531 { |
532 if (strncmp(oldv, txt, table[i].maxsize) != 0) |
532 if (strncmp(oldv, txt, table[i].maxsize) != 0) |
533 { |
533 { |
534 if (table[i].width > 0) |
534 if (table[i].width > 0) |
535 dsp->fillrect(table[i].x0, |
535 dsp->fillrect(table[i].x0, |
536 table[i].y0, |
536 table[i].y0, |
537 table[i].x0 + table[i].width, |
537 table[i].x0 + table[i].width, |
538 table[i].y0 + table[i].font[2], |
538 table[i].y0 + table[i].font[2], |
539 bgcolor); |
539 bgcolor); |
540 for (uint8_t k=0; ;k++) |
540 for (uint8_t k=0; ;k++) |
541 { |
541 { |
542 if (txtp[k] == 0x00) |
542 if (txtp[k] == 0x00) |
543 { |
543 { |
544 dsp->printf(txtp); |
544 dsp->printf(txtp); |
653 printf("TEST DSP #2\r\n"); |
653 printf("TEST DSP #2\r\n"); |
654 show(0x00, "8g8g8g8g8g8g8", 13); // main dsp |
654 show(0x00, "8g8g8g8g8g8g8", 13); // main dsp |
655 show(0x0C, "888", 3); // channel dsp |
655 show(0x0C, "888", 3); // channel dsp |
656 show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags |
656 show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags |
657 dsp->copy_to_lcd(); |
657 dsp->copy_to_lcd(); |
658 wait(3); |
658 ThisThread::sleep_for(3); |
659 dsp->cls(); |
659 dsp->cls(); |
660 printf("TEST DSP #3\r\n"); |
660 printf("TEST DSP #3\r\n"); |
661 |
661 |
662 for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++) |
662 for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++) |
663 { |
663 { |