Takuma Hayashi
/
TM1637_test
Use TM1637 with 4 digits 7 segment LED
main.cpp@0:366d0d27531b, 2022-03-21 (annotated)
- Committer:
- Sigma884
- Date:
- Mon Mar 21 06:01:22 2022 +0000
- Revision:
- 0:366d0d27531b
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sigma884 | 0:366d0d27531b | 1 | #include "mbed.h" |
Sigma884 | 0:366d0d27531b | 2 | #include "TM1637.h" |
Sigma884 | 0:366d0d27531b | 3 | |
Sigma884 | 0:366d0d27531b | 4 | #include "Font_7Seg.h" |
Sigma884 | 0:366d0d27531b | 5 | |
Sigma884 | 0:366d0d27531b | 6 | Serial pc(USBTX, USBRX); |
Sigma884 | 0:366d0d27531b | 7 | DigitalOut myled(LED1); //NOTE: On F401 LED1 is Pin D13, which is SCK! |
Sigma884 | 0:366d0d27531b | 8 | |
Sigma884 | 0:366d0d27531b | 9 | // DisplayData_t size is 6 bytes (6 Grids @ 8 Segments) |
Sigma884 | 0:366d0d27531b | 10 | TM1637::DisplayData_t all_str = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; |
Sigma884 | 0:366d0d27531b | 11 | TM1637::DisplayData_t cls_str = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; |
Sigma884 | 0:366d0d27531b | 12 | TM1637::DisplayData_t hello_str = {C7_H, C7_I, 0x00, 0x00, 0x00, 0x00}; |
Sigma884 | 0:366d0d27531b | 13 | //TM1637::DisplayData_t cls_str = {0x00, 0x00, 0x00, 0x00}; |
Sigma884 | 0:366d0d27531b | 14 | //TM1637::DisplayData_t hello_str = {C7_H, C7_I, 0x00, 0x00}; |
Sigma884 | 0:366d0d27531b | 15 | |
Sigma884 | 0:366d0d27531b | 16 | TM1637::KeyData_t keydata; |
Sigma884 | 0:366d0d27531b | 17 | |
Sigma884 | 0:366d0d27531b | 18 | //TM1637 TM1637(D4, D5); //F303K8 |
Sigma884 | 0:366d0d27531b | 19 | TM1637_EYEWINK TM1637(D4, D5); //F303K8 |
Sigma884 | 0:366d0d27531b | 20 | |
Sigma884 | 0:366d0d27531b | 21 | |
Sigma884 | 0:366d0d27531b | 22 | void show_menu() { |
Sigma884 | 0:366d0d27531b | 23 | //pc.printf("0: Exit\n\r"); |
Sigma884 | 0:366d0d27531b | 24 | pc.printf("1: All\n\r"); |
Sigma884 | 0:366d0d27531b | 25 | pc.printf("2: Cls\n\r"); |
Sigma884 | 0:366d0d27531b | 26 | pc.printf("3: Show all segs\r\n"); |
Sigma884 | 0:366d0d27531b | 27 | pc.printf("s: Timer 20s\r\n"); |
Sigma884 | 0:366d0d27531b | 28 | } |
Sigma884 | 0:366d0d27531b | 29 | |
Sigma884 | 0:366d0d27531b | 30 | |
Sigma884 | 0:366d0d27531b | 31 | char cmd, bits; |
Sigma884 | 0:366d0d27531b | 32 | int main() { |
Sigma884 | 0:366d0d27531b | 33 | |
Sigma884 | 0:366d0d27531b | 34 | pc.printf("Hello World\r\n"); |
Sigma884 | 0:366d0d27531b | 35 | |
Sigma884 | 0:366d0d27531b | 36 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 37 | TM1637.setBrightness(TM1637_BRT3); |
Sigma884 | 0:366d0d27531b | 38 | TM1637.writeData(all_str); |
Sigma884 | 0:366d0d27531b | 39 | wait(0.5); |
Sigma884 | 0:366d0d27531b | 40 | TM1637.setBrightness(TM1637_BRT0); |
Sigma884 | 0:366d0d27531b | 41 | wait(0.5); |
Sigma884 | 0:366d0d27531b | 42 | TM1637.setBrightness(TM1637_BRT3); |
Sigma884 | 0:366d0d27531b | 43 | |
Sigma884 | 0:366d0d27531b | 44 | show_menu(); |
Sigma884 | 0:366d0d27531b | 45 | |
Sigma884 | 0:366d0d27531b | 46 | Timer timer; |
Sigma884 | 0:366d0d27531b | 47 | |
Sigma884 | 0:366d0d27531b | 48 | while (1) { |
Sigma884 | 0:366d0d27531b | 49 | cmd = pc.getc(); |
Sigma884 | 0:366d0d27531b | 50 | |
Sigma884 | 0:366d0d27531b | 51 | switch (cmd) { |
Sigma884 | 0:366d0d27531b | 52 | case '1': |
Sigma884 | 0:366d0d27531b | 53 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 54 | TM1637.writeData(all_str); |
Sigma884 | 0:366d0d27531b | 55 | break; |
Sigma884 | 0:366d0d27531b | 56 | |
Sigma884 | 0:366d0d27531b | 57 | case '2': |
Sigma884 | 0:366d0d27531b | 58 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 59 | TM1637.writeData(cls_str); |
Sigma884 | 0:366d0d27531b | 60 | break; |
Sigma884 | 0:366d0d27531b | 61 | |
Sigma884 | 0:366d0d27531b | 62 | case '3': |
Sigma884 | 0:366d0d27531b | 63 | //test to show all segs |
Sigma884 | 0:366d0d27531b | 64 | pc.printf("Show all segs\r\n"); |
Sigma884 | 0:366d0d27531b | 65 | wait(1); |
Sigma884 | 0:366d0d27531b | 66 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 67 | |
Sigma884 | 0:366d0d27531b | 68 | //for (int i=0; i<TM1637_DISPLAY_MEM; i++) { |
Sigma884 | 0:366d0d27531b | 69 | for (int i=0; i<4; i++) { |
Sigma884 | 0:366d0d27531b | 70 | for (int bit=0; bit<8; bit++) { |
Sigma884 | 0:366d0d27531b | 71 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 72 | |
Sigma884 | 0:366d0d27531b | 73 | bits = 0x01 << bit; |
Sigma884 | 0:366d0d27531b | 74 | TM1637.writeData(bits, i); |
Sigma884 | 0:366d0d27531b | 75 | |
Sigma884 | 0:366d0d27531b | 76 | pc.printf("Idx = %d, Bits = 0x%02x\r\n", i, bits); |
Sigma884 | 0:366d0d27531b | 77 | cmd = pc.getc(); // wait for key |
Sigma884 | 0:366d0d27531b | 78 | } |
Sigma884 | 0:366d0d27531b | 79 | } |
Sigma884 | 0:366d0d27531b | 80 | pc.printf("Show all segs done\r\n"); |
Sigma884 | 0:366d0d27531b | 81 | break; |
Sigma884 | 0:366d0d27531b | 82 | |
Sigma884 | 0:366d0d27531b | 83 | /* |
Sigma884 | 0:366d0d27531b | 84 | case '4': |
Sigma884 | 0:366d0d27531b | 85 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 86 | TM1637.printf("1"); |
Sigma884 | 0:366d0d27531b | 87 | break; |
Sigma884 | 0:366d0d27531b | 88 | |
Sigma884 | 0:366d0d27531b | 89 | case '5': |
Sigma884 | 0:366d0d27531b | 90 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 91 | TM1637.printf(" 1"); |
Sigma884 | 0:366d0d27531b | 92 | break; |
Sigma884 | 0:366d0d27531b | 93 | |
Sigma884 | 0:366d0d27531b | 94 | case '6': |
Sigma884 | 0:366d0d27531b | 95 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 96 | float data = 3.26; |
Sigma884 | 0:366d0d27531b | 97 | TM1637.printf(" %2.2f", data); |
Sigma884 | 0:366d0d27531b | 98 | break; |
Sigma884 | 0:366d0d27531b | 99 | */ |
Sigma884 | 0:366d0d27531b | 100 | |
Sigma884 | 0:366d0d27531b | 101 | case 's': |
Sigma884 | 0:366d0d27531b | 102 | timer.reset(); |
Sigma884 | 0:366d0d27531b | 103 | timer.start(); |
Sigma884 | 0:366d0d27531b | 104 | while(timer.read() < 20.0f){ |
Sigma884 | 0:366d0d27531b | 105 | float time = timer.read(); |
Sigma884 | 0:366d0d27531b | 106 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 107 | if (time < 10.0f){ |
Sigma884 | 0:366d0d27531b | 108 | TM1637.printf(" %.2f", time); |
Sigma884 | 0:366d0d27531b | 109 | } |
Sigma884 | 0:366d0d27531b | 110 | else{ |
Sigma884 | 0:366d0d27531b | 111 | TM1637.printf("%.2f", time); |
Sigma884 | 0:366d0d27531b | 112 | } |
Sigma884 | 0:366d0d27531b | 113 | } |
Sigma884 | 0:366d0d27531b | 114 | timer.stop(); |
Sigma884 | 0:366d0d27531b | 115 | wait(1.0f); |
Sigma884 | 0:366d0d27531b | 116 | TM1637.cls(); |
Sigma884 | 0:366d0d27531b | 117 | break; |
Sigma884 | 0:366d0d27531b | 118 | |
Sigma884 | 0:366d0d27531b | 119 | default: |
Sigma884 | 0:366d0d27531b | 120 | break; |
Sigma884 | 0:366d0d27531b | 121 | } //switch cmd |
Sigma884 | 0:366d0d27531b | 122 | |
Sigma884 | 0:366d0d27531b | 123 | myled = !myled; |
Sigma884 | 0:366d0d27531b | 124 | wait(0.2); |
Sigma884 | 0:366d0d27531b | 125 | } //while |
Sigma884 | 0:366d0d27531b | 126 | } |
Sigma884 | 0:366d0d27531b | 127 | |
Sigma884 | 0:366d0d27531b | 128 |