Sun, 25 Oct 2020 17:02:53 +0100
Update the custom target HP34970_FP_303RD
update the platformio.ini:
remove unused flags, and configure so it uses includes from the project's root
directory (in TARGET_HP34970_FP_F303RD) so these .h/.c files do not conflict
when compiling for other targets.
Add a TARGET_HP34970_FR_F303RD/ for target specific headers/linker files.
Add a src/TARGET_HP34970_FR_F303RD/ for c files (protected by '#if defined'
statments).
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
1 | #include "stdio.h" |
4
219766126afb
another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents:
3
diff
changeset
|
2 | |
21 | 3 | #include <mbed.h> |
4 | #include <rtos.h> | |
5 | #include <string> | |
4
219766126afb
another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents:
3
diff
changeset
|
6 | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
7 | #include "Terminal6x8.h" |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
8 | #include "Mono19x27.h" |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
9 | #include "Mono15x22.h" |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
10 | #include "Arial12x12.h" |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
11 | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
12 | #include "SSD1322.h" |
5 | 13 | #include "hp34comm.h" |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
14 | |
19 | 15 | #include "QEI.h" |
18
4fd621551d55
[full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents:
17
diff
changeset
|
16 | #include "Keypad.h" |
4fd621551d55
[full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents:
17
diff
changeset
|
17 | |
19 | 18 | |
19 | /******************************************************/ | |
20 | /* F446RE */ | |
21 | /******************************************************/ | |
26 | 22 | #if defined STM32F446xx |
19 | 23 | // UART |
24 | // USBTX PA_2 | |
25 | // USBRX PA_3 | |
8 | 26 | // display |
21 | 27 | #define DSP_MOSI PB_15 // blue |
26 | 28 | #define DSP_MISO PB_14 // NC |
21 | 29 | #define DSP_SCLK PB_13 // yellow |
30 | #define DSP_CS PB_12 // green | |
31 | #define DSP_RST PB_5 // green | |
32 | #define DSP_DC PB_4 // red | |
19 | 33 | |
8 | 34 | // UART for RX (CPU->DP) |
19 | 35 | #define HP_RX PC_11 // serial3 RX |
36 | #define HP_TX PC_10 // serial3 TX | |
37 | ||
38 | // RST pin (handle this by hand) | |
39 | #define HP_RST PC_12 | |
40 | ||
41 | // encoder | |
42 | #define KP_ENC1 PC_4 | |
43 | #define KP_ENC2 PC_5 | |
44 | ||
45 | // keypad | |
46 | #define KP_R0 PC_0 // I-6 | |
47 | #define KP_R1 PC_1 // II-5 | |
48 | #define KP_R2 PC_2 // I-5 | |
49 | #define KP_R3 PC_3 // II-4 | |
50 | ||
51 | ||
52 | #define KP_C0 PB_0 // I-4 | |
53 | #define KP_C1 PA_6 // I-2 | |
54 | #define KP_C2 PA_7 // I-3 | |
22 | 55 | #define KP_C3 PA_10 // I-1 |
19 | 56 | #define KP_C4 PD_2 // II-1 |
8 | 57 | |
58 | // misc | |
19 | 59 | #define DBGPIN PC_6 |
8 | 60 | |
26 | 61 | #elif defined STM32F303xE // HP34970 replacement PCB |
62 | ||
63 | #define DSP_MOSI PA_7 | |
64 | #define DSP_MISO PA_6 // NC | |
65 | #define DSP_SCLK PA_5 | |
66 | #define DSP_CS PA_2 | |
67 | #define DSP_RST PA_3 | |
68 | #define DSP_DC PA_4 | |
69 | ||
70 | // UART for RX (CPU->DP) | |
71 | #define HP_RX PC_5 | |
72 | #define HP_TX PC_4 | |
73 | ||
74 | // RST pin (handle this by hand) | |
75 | #define HP_RST PA_15 | |
76 | ||
77 | // encoder | |
78 | #define KP_ENC1 PA_0 | |
79 | #define KP_ENC2 PA_1 | |
80 | ||
81 | // keypad | |
82 | #define KP_R0 PB_5 | |
83 | #define KP_R1 PB_6 | |
84 | #define KP_R2 PB_7 | |
85 | #define KP_R3 PB_8 | |
86 | ||
87 | #define KP_C0 PC_2 | |
88 | #define KP_C1 PC_1 | |
89 | #define KP_C2 PC_0 | |
90 | #define KP_C3 PB_4 | |
91 | #define KP_C4 PB_0 | |
92 | ||
8 | 93 | #endif |
94 | ||
26 | 95 | |
13
0fdeed7c083e
make USB (debug) serial console depend only on HAVE_PC compile variable
David Douard <david.douard@logilab.fr>
parents:
12
diff
changeset
|
96 | #ifdef HAVE_PC |
28
424d792fea4f
compile for nucleo f446re & f303re with mbed 6
David Douard <david.douard@sdfa3.org>
parents:
26
diff
changeset
|
97 | BufferedSerial pc(USBTX, USBRX); |
13
0fdeed7c083e
make USB (debug) serial console depend only on HAVE_PC compile variable
David Douard <david.douard@logilab.fr>
parents:
12
diff
changeset
|
98 | #endif |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
99 | |
19 | 100 | SSD1322 *dsp; |
101 | HPSerial *hp; | |
8 | 102 | volatile uint8_t must_refresh; |
103 | Thread tdsp, tloop; | |
19 | 104 | Ticker blinker; |
105 | Timeout rst_delay; | |
106 | Timeout splashscreen_timer; | |
8 | 107 | DigitalOut led(LED1); |
19 | 108 | InterruptIn rst(HP_RST); |
109 | ||
110 | QEI qenc(KP_ENC1, KP_ENC2, NC, 16); | |
111 | volatile uint8_t knob; | |
112 | volatile bool splashscreen; | |
113 | ||
114 | ||
115 | typedef enum { | |
116 | KEY_NONE=0, | |
117 | KEY_PRESSED, | |
118 | KEY_RELEASED | |
119 | } key_event_t; | |
120 | ||
121 | typedef struct keycode { | |
122 | uint8_t row; | |
123 | uint8_t col; | |
124 | key_event_t keyevent; | |
125 | } keycode_t; | |
126 | ||
127 | volatile keycode_t cur_keycode; | |
5 | 128 | |
19 | 129 | PinName kp_rows[] = { |
130 | KP_R0, | |
131 | KP_R1, | |
132 | KP_R2, | |
133 | KP_R3 | |
134 | }; | |
135 | ||
136 | PinName kp_colums[] = { | |
137 | KP_C0, KP_C1, | |
138 | KP_C2, KP_C3, | |
139 | KP_C4 | |
140 | }; | |
18
4fd621551d55
[full replacement] implement a state machine for Rx
David Douard <david.douard@logilab.fr>
parents:
17
diff
changeset
|
141 | |
19 | 142 | DigitalIn kp_in[] = { |
143 | KP_R0, | |
144 | KP_R1, | |
145 | KP_R2, | |
146 | KP_R3 | |
147 | }; | |
148 | ||
149 | DigitalOut kp_out[] = { | |
150 | KP_C0, KP_C1, | |
151 | KP_C2, KP_C3, | |
152 | KP_C4 | |
153 | }; | |
154 | ||
155 | uint8_t kp_nrows = sizeof(kp_in)/sizeof(kp_in[0]); | |
156 | uint8_t kp_ncols = sizeof(kp_out)/sizeof(kp_out[0]); | |
157 | ||
158 | void kp_cb(uint8_t row, uint8_t col); | |
159 | void kr_cb(uint8_t row, uint8_t col); | |
160 | ||
161 | Keypad *kpad; | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
162 | uint8_t curchar; |
26 | 163 | //uint8_t curcmd; |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
164 | uint8_t nchars; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
165 | char buffer[MAX_BUFF+1]; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
166 | |
8 | 167 | void timeout_h() { |
168 | led = !led; | |
169 | } | |
170 | ||
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
171 | typedef struct _DSP |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
172 | { |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
173 | uint8_t cmd; |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
174 | uint8_t color; |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
175 | uint8_t bgcolor; |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
176 | uint8_t x0; |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
177 | uint8_t y0; |
5 | 178 | uint8_t fmt; // 0x01=>ascii, 0x02=>hex, 0x04=>bits, 0x08=>flags, 0x80=>ignore |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
179 | uint8_t maxsize; |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
180 | uint8_t width; |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
181 | const unsigned char* font; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
182 | char buffer[MAX_BUFF+1]; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
183 | } DSP; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
184 | |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
185 | static DSP table[] = |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
186 | { |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
187 | { 0x00, 0xF, 0x0, 0, 0, 0x01, MAX_BUFF, 245, Mono19x27}, // main display |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
188 | { 0x0C, 0xF, 0x0,196, 34, 0x01, 3, 45, Mono15x22}, // channels display |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
189 | { 0x0A, 0xF, 0x0, 0, 57, 0x08, 4, 0, Terminal6x8}, // flags + bits |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
190 | }; |
2 | 191 | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
192 | // 9x10 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
193 | const unsigned char icon_alarm[] __attribute__((aligned (2))) = |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
194 | { |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
195 | 0x1c, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
196 | 0x3e, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
197 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
198 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
199 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
200 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
201 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
202 | 0x7f, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
203 | 0xff, 0x80, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
204 | 0x10, 0x0 |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
205 | }; |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
206 | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
207 | const unsigned char icon_curve[] __attribute__((aligned (2))) = |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
208 | { |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
209 | 0x80, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
210 | 0x80, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
211 | 0x80, 0x80, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
212 | 0x81, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
213 | 0x9e, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
214 | 0xa0, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
215 | 0xc0, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
216 | 0x80, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
217 | 0x80, 0x0, |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
218 | 0xff, 0x80 |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
219 | }; |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
220 | |
2 | 221 | typedef struct _FLAG |
222 | { | |
223 | uint8_t flag; | |
224 | uint8_t x; | |
225 | uint8_t y; | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
226 | bool reverse; |
2 | 227 | const char* msg; |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
228 | const unsigned char* icon; |
2 | 229 | } FLAG; |
230 | ||
5 | 231 | typedef struct _FRAME |
232 | { | |
8 | 233 | uint16_t flag; |
5 | 234 | uint8_t x0; |
235 | uint8_t y0; | |
236 | uint8_t x1; | |
237 | uint8_t y1; | |
238 | } FRAME; | |
239 | ||
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
240 | static const FLAG flags[] = |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
241 | { |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
242 | // flag, zone, x0, y0, reverse, msg, icon |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
243 | // right-side icons area |
26 | 244 | { 0x00, 246, 0, false, NULL, icon_alarm}, // F1.0 |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
245 | { 0x01, 246, 11, false, NULL, icon_curve}, // F1.1 |
22 | 246 | |
21 | 247 | // F1.2 == Channel frame |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
248 | { 0x03, 197, 27, false, "Channel"}, // F1.3 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
249 | // F1.7 == Alarm frame |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
250 | |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
251 | { 0x34, 0, 28+8, false, "MON"}, // F4.4 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
252 | { 0x33, 0, 28+16, false, "VIEW"}, // F4.3 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
253 | { 0x35, 0, 28, true, "SCAN"}, // F4.5 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
254 | { 0x36, 0, 28+25, true, "CONFIG"}, // F4.6 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
255 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
256 | { 0x32, 40, 52, false, "*"}, // F4.2 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
257 | { 0x31, 50, 52, false, "ADRS"}, // F4.1 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
258 | { 0x30, 80, 52, false, "RMT"}, // F4.0 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
259 | { 0x27, 104, 52, true, "ERROR"}, // F3.7 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
260 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
261 | { 0x26, 140, 52, false, "EXT"}, // F3.6 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
262 | { 0x25, 164, 52, false, "ONCE"}, // F3.5 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
263 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
264 | { 0x23, 104, 28+16, false, "MEM"}, // F3.3 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
265 | |
19 | 266 | |
8 | 267 | // col 5 |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
268 | { 0x14, 244, 22, false, "4W"}, // F2.4 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
269 | { 0x15, 244, 30, false, "OC"}, // F2.5 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
270 | { 0x22, 129, 28+16, false, "LAST"}, // F3.2 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
271 | { 0x21, 129, 28+16, false, "MIN"}, // F3.1 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
272 | { 0x20, 129, 28+16, false, "MAX"}, // F3.0 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
273 | { 0x17, 129, 28+16, false, "AVG"}, // F2.7 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
274 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
275 | { 0x05, 154+0, 17+10, false, "Alarm"}, // F1.5 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
276 | { 0x06, 154+0, 17+20, false, "H"}, // F1.6 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
277 | { 0x13, 154+6, 17+20, false, "1"}, // F2.3 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
278 | { 0x10, 154+12, 17+20, false, "2"}, // F2.0 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
279 | { 0x12, 154+18, 17+20, false, "3"}, // F2.2 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
280 | { 0x11, 154+24, 17+20, false, "4"}, // F2.1 |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
281 | { 0x04, 154+30, 17+20, false, "L"}, // F1.4 |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
282 | |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
283 | }; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
284 | |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
285 | static const FRAME zones[] = |
22 | 286 | { // flag, x0, y0, x1, y1 |
8 | 287 | { 0x001, 0, 0, 245, 27}, // main display area |
288 | { 0x002, 246, 0, 255, 27}, // right notif area | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
289 | { 0x004, 208, 35, 254, 62}, // channels display area |
8 | 290 | { 0x008, 160, 28, 202, 54}, // alarms area |
291 | { 0x010, 0, 28, 32, 54}, // flags col1 | |
292 | { 0x020, 33, 28, 70, 54}, // flags col2 | |
293 | { 0x040, 71, 28, 103, 54}, // flags col3 | |
294 | { 0x080, 104, 28, 128, 54}, // flags col4 | |
295 | { 0x100, 129, 28, 159, 54}, // flags col5 | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
296 | |
22 | 297 | // { 0x8000, 0, 55, 255, 63}, // flags bits display area |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
298 | }; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
299 | |
5 | 300 | static const FRAME frames[] = |
301 | { | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
302 | { 0x02, 194, 30, 243, 53}, // F1.2 - channel frame |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
303 | { 0x07, 151, 30, 192, 46}, // F1.7 - alarm frame |
5 | 304 | }; |
305 | ||
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
306 | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
307 | #ifdef DEBUG |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
308 | |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
309 | DigitalOut dbgpin(DBGPIN); |
5 | 310 | inline void pulse(uint8_t count=1, bool stayup=false) |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
311 | { |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
312 | dbgpin = 0; |
5 | 313 | wait_us(2); |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
314 | while (count--) |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
315 | { |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
316 | dbgpin = 1; |
5 | 317 | wait_us(2); |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
318 | dbgpin = 0; |
5 | 319 | wait_us(2); |
320 | } | |
321 | if (stayup) | |
322 | dbgpin = 1; | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
323 | } |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
324 | #else |
5 | 325 | inline void pulse(uint8_t count=1, bool stayup=false) |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
326 | {} |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
327 | #endif |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
328 | |
19 | 329 | // callbacks & thread functions |
330 | void loop(); | |
331 | void copy_to_lcd(void); | |
332 | void test_dsp(); | |
333 | void reset(void); | |
334 | void reset_irq(void); | |
335 | void qei_cb(int dir); | |
336 | void end_splashscreen(void); | |
22 | 337 | void show(uint8_t, const char*, uint8_t); |
4
219766126afb
another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents:
3
diff
changeset
|
338 | |
219766126afb
another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents:
3
diff
changeset
|
339 | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
340 | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
341 | void setup() { |
8 | 342 | #ifdef HAVE_PC |
28
424d792fea4f
compile for nucleo f446re & f303re with mbed 6
David Douard <david.douard@sdfa3.org>
parents:
26
diff
changeset
|
343 | pc.set_baud(115200); |
8 | 344 | #endif |
21 | 345 | |
19 | 346 | printf("\n\nSETUP\n"); |
347 | printf(" System Core Clock = %.3f MHZ\r\n", | |
8 | 348 | (float)SystemCoreClock/1000000); |
21 | 349 | |
19 | 350 | //printf("Attaching Led 1: %d\n", LED1); |
351 | //blinker.attach(callback(timeout_h), 0.5f); | |
21 | 352 | |
19 | 353 | hp = NULL; |
22 | 354 | printf("Serial communication pins\r\n"); |
355 | printf(" USBRX=%d\r\n", USBRX); | |
356 | printf(" USBTX=%d\r\n", USBTX); | |
357 | ||
21 | 358 | printf("Setup HP communication pins\r\n"); |
359 | printf(" HP_RX=%d\r\n", HP_RX); | |
19 | 360 | DigitalIn(HP_RX).mode(PullDown); |
21 | 361 | printf(" HP_TX=%d\r\n", HP_TX); |
19 | 362 | DigitalOut(HP_TX).write(1); |
21 | 363 | printf(" HP_RST=%d\r\n", HP_RST); |
19 | 364 | DigitalIn(HP_RST).mode(PullDown); |
21 | 365 | |
366 | printf(" setup QEI pins\r\n"); | |
367 | printf(" ENC1=%d\r\n", KP_ENC1); | |
19 | 368 | DigitalIn(KP_ENC1).mode(PullUp); |
21 | 369 | printf(" ENC2=%d\r\n", KP_ENC2); |
19 | 370 | DigitalIn(KP_ENC2).mode(PullUp); |
371 | qenc.attach(&qei_cb); | |
372 | ||
21 | 373 | printf(" setup Keypad\r\n"); |
19 | 374 | cur_keycode.keyevent = KEY_NONE; |
375 | uint8_t nrows = sizeof(kp_rows)/sizeof(kp_rows[0]); | |
376 | uint8_t ncols = sizeof(kp_colums)/sizeof(kp_colums[0]); | |
377 | ||
378 | kpad = new Keypad(nrows, kp_in, ncols, kp_out); | |
21 | 379 | printf(" attach Keypad callbacks\r\n"); |
19 | 380 | kpad->attach(&kp_cb, &kr_cb); |
21 | 381 | printf(" start Keypad\r\n"); |
382 | kpad->start(); | |
383 | ||
384 | printf("Setup OLED display\r\n"); | |
19 | 385 | // init the LCD |
21 | 386 | printf(" DSP_MOSI=%d\r\n", DSP_MOSI); |
387 | printf(" DSP_MISO=%d\r\n", DSP_MISO); | |
388 | printf(" DSP_SCLK=%d\r\n", DSP_SCLK); | |
389 | printf(" DSP_CS=%d\r\n", DSP_CS); | |
390 | printf(" DSP_RST=%d\r\n", DSP_RST); | |
391 | printf(" DSP_DC=%d\r\n", DSP_DC); | |
19 | 392 | dsp = new SSD1322(20000000, DSP_MOSI, DSP_MISO, DSP_SCLK, DSP_CS, |
393 | DSP_RST, DSP_DC, "SSD1322"); | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
394 | |
21 | 395 | printf(" configure DSP\r\n"); |
8 | 396 | dsp->background(Black); // set background to black |
397 | dsp->foreground(0xF); | |
398 | dsp->cls(); | |
19 | 399 | |
26 | 400 | //curcmd = 0xFF; |
8 | 401 | curchar = 0; |
402 | nchars = 0; | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
403 | |
8 | 404 | for (uint8_t i=0; i<sizeof(table)/sizeof(table[0]); ++i) |
405 | memset(table[i].buffer, 0, MAX_BUFF+1); | |
19 | 406 | |
21 | 407 | printf(" display splash screen\r\n"); |
8 | 408 | dsp->locate(30, 10); |
409 | dsp->set_font((unsigned char*)Mono19x27); | |
410 | dsp->printf("HP34970A"); | |
411 | dsp->set_font((unsigned char*)Terminal6x8); | |
412 | dsp->locate(90, 40); | |
413 | dsp->printf("David Douard"); | |
414 | dsp->copy_to_lcd(); | |
19 | 415 | |
21 | 416 | printf("Starting LCD thread\r\n"); |
19 | 417 | tdsp.start(©_to_lcd); |
418 | ||
22 | 419 | printf("Starting Event thread\r\n"); |
420 | tloop.start(&loop); | |
421 | ||
422 | dsp->clrbuff(); | |
423 | show(0x00, "HH:MM:\tSS\t:mmmm", 15); // main dsp | |
424 | show(0x0C, "888", 3); // channel dsp | |
425 | show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags | |
21 | 426 | |
427 | printf("Attaching timers\r\n"); | |
22 | 428 | splashscreen = true; |
19 | 429 | splashscreen_timer.attach(callback(&end_splashscreen), 2); |
430 | rst.fall(&reset_irq); | |
21 | 431 | |
432 | printf("SETUP DONE\r\n"); | |
19 | 433 | } |
8 | 434 | |
19 | 435 | void end_splashscreen(void) |
436 | { | |
26 | 437 | // print is forbidden here because we are in an ISR context here |
438 | //printf("End of splash screen CB\r\n"); | |
19 | 439 | splashscreen = false; |
440 | } | |
441 | ||
442 | void reset_irq(void) | |
443 | { | |
21 | 444 | rst_delay.attach(callback(&reset), 0.1); |
19 | 445 | } |
446 | ||
447 | void reset(void) | |
448 | { | |
449 | if (DigitalIn(HP_RST).read() == 0) { | |
450 | if (hp == NULL) { | |
21 | 451 | printf("setup HP communication handler\r\n"); |
19 | 452 | hp = new HPSerial(HP_TX, HP_RX); |
453 | } | |
21 | 454 | |
455 | printf("!! RST !! (gstate=%d, state=%d)\r\n", | |
19 | 456 | hp->gstate(), hp->state()); |
457 | //printf("Value is ... %X\n", hp->search()); | |
458 | hp->startup(); | |
459 | } | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
460 | } |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
461 | |
4
219766126afb
another attempt using a more complete support of the protocol and async serial stuff
David Douard <david.douard@logilab.fr>
parents:
3
diff
changeset
|
462 | void copy_to_lcd(void) { |
19 | 463 | //uint8_t mask=1; |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
464 | |
5 | 465 | while(1) { |
466 | pulse(0, true); | |
19 | 467 | if ((splashscreen == false) && (must_refresh)) { |
8 | 468 | must_refresh = 0; |
19 | 469 | //Thread::wait(20); // give a bit of time for some more cmds |
8 | 470 | dsp->copy_to_lcd(); |
471 | } | |
472 | ||
473 | /* | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
474 | if (must_refresh & mask) { |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
475 | for(uint8_t i=0; i<sizeof(zones)/sizeof(zones[0]); i++) |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
476 | if (zones[i].flag == mask) { |
8 | 477 | dsp->copy_to_lcd(zones[i].x0/4, (zones[i].x1+3)/4, |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
478 | zones[i].y0, zones[i].y1); |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
479 | must_refresh &= ~mask; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
480 | break; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
481 | } |
5 | 482 | } |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
483 | mask = mask << 1; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
484 | if (mask == 0) { |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
485 | mask = 1; |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
486 | } |
8 | 487 | */ |
5 | 488 | pulse(0, false); |
26 | 489 | |
490 | ThisThread::sleep_for(30); | |
5 | 491 | } |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
492 | } |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
493 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
494 | void show(uint8_t cmd, const char *intxt, uint8_t nchar=0) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
495 | { |
26 | 496 | uint8_t i; |
497 | // uint8_t len; | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
498 | uint16_t bgcolor, fgcolor; |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
499 | char *oldv; |
26 | 500 | // char *txt; |
501 | char *txtp; | |
502 | static char txt[256]; | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
503 | |
21 | 504 | |
22 | 505 | if (cmd == 0xFF) // cls |
506 | { | |
507 | dsp->clrbuff(); | |
508 | } | |
509 | else | |
510 | { | |
26 | 511 | //txt = (char *)malloc(strlen(intxt)+1); |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
512 | strcpy(txt, intxt); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
513 | txtp = txt; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
514 | |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
515 | pulse(1, true); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
516 | |
26 | 517 | // len = MAX_BUFF; |
22 | 518 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
519 | for (i=0; i<sizeof(table)/sizeof(table[0]); ++i) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
520 | if (table[i].cmd == cmd) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
521 | bgcolor = table[i].bgcolor; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
522 | fgcolor = table[i].color; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
523 | dsp->background(bgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
524 | dsp->foreground(fgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
525 | dsp->set_font((unsigned char*) table[i].font); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
526 | oldv = table[i].buffer; |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
527 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
528 | dsp->locate(table[i].x0, table[i].y0); |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
529 | |
26 | 530 | if (table[i].fmt & 0x01) // ASCII text |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
531 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
532 | if (strncmp(oldv, txt, table[i].maxsize) != 0) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
533 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
534 | if (table[i].width > 0) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
535 | dsp->fillrect(table[i].x0, |
26 | 536 | table[i].y0, |
537 | table[i].x0 + table[i].width, | |
538 | table[i].y0 + table[i].font[2], | |
539 | bgcolor); | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
540 | for (uint8_t k=0; ;k++) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
541 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
542 | if (txtp[k] == 0x00) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
543 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
544 | dsp->printf(txtp); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
545 | break; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
546 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
547 | if (txtp[k] == 0x09) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
548 | { // \t is a special char for 'unselected' display value |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
549 | txtp[k] = 0x00; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
550 | dsp->printf(txtp); |
5 | 551 | |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
552 | if (fgcolor == table[i].color) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
553 | fgcolor /= 2; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
554 | else |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
555 | fgcolor = table[i].color; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
556 | dsp->foreground(fgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
557 | txtp = &(txtp[k+1]); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
558 | k = 0; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
559 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
560 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
561 | if (cmd == 0x00) // main area |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
562 | must_refresh |= 0x01; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
563 | if (cmd == 0x0C) // channels area |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
564 | must_refresh |= 0x04; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
565 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
566 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
567 | /* |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
568 | if (table[i].fmt & 0x02 ) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
569 | // hex |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
570 | for (uint8_t j=0;; j++) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
571 | if (txt[j] == 0x00) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
572 | break; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
573 | dsp->printf("%02X ", txt[j]); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
574 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
575 | for (uint8_t j=3*strlen(txt); j<table[i].maxsize; j++) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
576 | dsp->printf(" "); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
577 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
578 | */ |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
579 | if (table[i].fmt & 0x08 ) // flag indicators |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
580 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
581 | // flags |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
582 | for (uint8_t j=0; j<max(nchar, table[i].maxsize) ; j++) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
583 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
584 | for (uint8_t k=0; k<8; k++) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
585 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
586 | if (1) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
587 | { //(txt[j] & (1 << k) ) != (oldv[j] & (1 << k))) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
588 | for (uint8_t l=0; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
589 | l<(sizeof(flags)/sizeof(flags[0])); ++l) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
590 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
591 | if (flags[l].flag == ((j<<4) + k)) { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
592 | if (txtp[j] & (1 << k)) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
593 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
594 | dsp->foreground(flags[l].reverse ? bgcolor : fgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
595 | dsp->background(flags[l].reverse ? fgcolor : bgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
596 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
597 | else |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
598 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
599 | dsp->foreground(bgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
600 | dsp->background(bgcolor); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
601 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
602 | if (flags[l].msg != NULL) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
603 | { // a string |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
604 | dsp->locate(flags[l].x, flags[l].y); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
605 | dsp->printf(flags[l].msg);} |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
606 | else |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
607 | { // an icon |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
608 | Bitmap_s pic = {9, 10, 2, (char*) flags[l].icon}; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
609 | dsp->Bitmap_BW(pic, flags[l].x, flags[l].y); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
610 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
611 | must_refresh = 1; //|= zones[m].flag; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
612 | break; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
613 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
614 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
615 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
616 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
617 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
618 | |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
619 | // draw frames (Alarm and Channel) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
620 | for (uint8_t l=0; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
621 | l<(sizeof(frames)/sizeof(frames[0])); ++l) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
622 | { |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
623 | uint16_t color; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
624 | if (frames[l].flag & txt[0]) // frame flags are on the 1st byte only |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
625 | color = fgcolor/6; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
626 | else |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
627 | color = bgcolor; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
628 | dsp->hline(frames[l].x0+1, frames[l].x0+3, frames[l].y0, color); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
629 | dsp->hline(frames[l].x1-3, frames[l].x1-1, frames[l].y0, color); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
630 | dsp->hline(frames[l].x0+1, frames[l].x1-1, frames[l].y1, color); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
631 | |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
632 | dsp->vline(frames[l].x0, frames[l].y0+1, frames[l].y1-1, color); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
633 | dsp->vline(frames[l].x1, frames[l].y0+1, frames[l].y1-1, color); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
634 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
635 | } |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
636 | |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
637 | for(uint8_t j=0; j<table[i].maxsize; j++) |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
638 | oldv[j] = txt[j]; |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
639 | break; |
22 | 640 | } |
641 | } | |
26 | 642 | //free(txt); |
23
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
643 | //dsp->copy_to_lcd(); |
daf26b083899
Add the serialdata tool
David Douard <david.douard@logilab.fr>
parents:
22
diff
changeset
|
644 | pulse(1, false); |
22 | 645 | } |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
646 | } |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
647 | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
648 | void test_dsp() |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
649 | { |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
650 | const FRAME *z; |
22 | 651 | printf("TEST DSP\r\n"); |
652 | dsp->cls(); | |
653 | printf("TEST DSP #2\r\n"); | |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
654 | show(0x00, "8g8g8g8g8g8g8", 13); // main dsp |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
655 | show(0x0C, "888", 3); // channel dsp |
5 | 656 | show(0x0A, "\xFF\xFF\xFF\xFF", 4); // all flags |
8 | 657 | dsp->copy_to_lcd(); |
26 | 658 | ThisThread::sleep_for(3); |
8 | 659 | dsp->cls(); |
22 | 660 | printf("TEST DSP #3\r\n"); |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
661 | |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
662 | for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++) |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
663 | { |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
664 | z = &zones[i]; |
8 | 665 | dsp->fillrect(z->x0, z->y0, z->x1, z->y1, 4+i); |
666 | dsp->locate(z->x0+1, z->y0+1); | |
667 | dsp->printf("%d", i); | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
668 | } |
8 | 669 | |
670 | /* | |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
671 | for (uint8_t i=0; i<(sizeof(zones)/sizeof(zones[0])); i++) |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
672 | { |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
673 | z = &zones[i]; |
8 | 674 | printf("Zone %d [%x]: %d, %d, %d, %d\n", i, z->flag, |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
675 | z->x0, z->y0, z->x1, z->y1); |
8 | 676 | must_refresh = z->flag; |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
677 | wait(1); |
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
678 | } |
8 | 679 | printf("Done\n"); |
7
5cf4034ba4e0
attempt to update display by bloc
David Douard <david.douard@logilab.fr>
parents:
5
diff
changeset
|
680 | wait(2); |
8 | 681 | printf("Copy ALL\n"); |
682 | dsp->copy_to_lcd(); | |
683 | */ | |
26 | 684 | ThisThread::sleep_for(2); |
8 | 685 | dsp->cls(); |
22 | 686 | printf("TEST DSP DONE\r\n"); |
3
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
687 | } |
a3233abe730e
beginning of a working display using the 3.2 OLED module
David Douard <david.douard@logilab.fr>
parents:
2
diff
changeset
|
688 | |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
689 | |
19 | 690 | void loop() |
691 | { // run over and over | |
8 | 692 | unsigned int err[8]; |
693 | for (uint8_t i=0; i<8; i++) | |
694 | err[i] = 0; | |
19 | 695 | int p, pp; |
21 | 696 | p = 0; |
697 | pp = 0; | |
8 | 698 | while(1) { |
19 | 699 | if (knob != 0) |
21 | 700 | { |
701 | if (hp != NULL) | |
702 | { | |
703 | printf("Sending keycode %X\r\n", knob); | |
704 | hp->sendkey(knob); | |
705 | printf(" DONE\r\n"); | |
706 | } | |
707 | knob = 0; | |
19 | 708 | } |
709 | ||
710 | if (cur_keycode.keyevent != KEY_NONE) | |
21 | 711 | { |
712 | printf("Keycode %dx%d: %s\r\n", | |
713 | cur_keycode.row, cur_keycode.col, | |
714 | cur_keycode.keyevent==KEY_PRESSED?"pressed":"released"); | |
715 | cur_keycode.keyevent = KEY_NONE; | |
716 | } | |
19 | 717 | |
718 | p = qenc.getPulses(); | |
21 | 719 | if (p != pp) |
720 | { | |
721 | printf("Pulses = %d\r\n", p); | |
19 | 722 | pp = p; |
723 | } | |
21 | 724 | |
19 | 725 | if ((hp != NULL) && (hp->cmd_available())) |
726 | { | |
21 | 727 | HPSerial::CMD cmd; |
728 | if (hp->pop(cmd)) | |
729 | { | |
730 | led = 1; | |
731 | for (uint8_t i=0; i<7; i++) | |
732 | if (hp->nerrors(i) > err[i]) { | |
733 | printf("ERR: %d/%d/%d/%d/%d/%d/%d\r\n", | |
734 | hp->nerrors(0), | |
735 | hp->nerrors(1), | |
736 | hp->nerrors(2), | |
737 | hp->nerrors(3), | |
738 | hp->nerrors(4), | |
739 | hp->nerrors(5), | |
740 | hp->nerrors(6) | |
741 | ); | |
742 | break; | |
743 | } | |
744 | for (uint8_t i=0; i<7; i++) | |
745 | err[i] = hp->nerrors(i); | |
19 | 746 | |
21 | 747 | printf("CMD[%d] %02X", (int)cmd.id, cmd.cmd); |
19 | 748 | |
21 | 749 | if ((cmd.cmd == 0x00) || (cmd.cmd == 0x0C)) |
750 | printf(": '%s'\r\n", cmd.value); | |
751 | else { | |
752 | printf(":"); | |
753 | for (uint8_t i=0; i<cmd.size; i++) | |
754 | printf("%02x ", cmd.value[i]); | |
755 | printf("\r\n"); | |
756 | } | |
757 | show(cmd.cmd, cmd.value, cmd.size); | |
758 | led = 0; | |
759 | } | |
760 | } | |
761 | //else | |
26 | 762 | ThisThread::sleep_for(1); |
5 | 763 | } |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
764 | } |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
765 | |
19 | 766 | void qei_cb(int dir) |
767 | { | |
768 | if(dir == 1) // turn right | |
769 | knob = 0x80; | |
770 | else // turn left | |
771 | knob = 0x83; | |
772 | } | |
773 | ||
774 | void kp_cb(uint8_t row, uint8_t col) | |
775 | { | |
776 | cur_keycode.row = row; | |
777 | cur_keycode.col = col; | |
778 | cur_keycode.keyevent = KEY_PRESSED; | |
779 | } | |
780 | ||
781 | void kr_cb(uint8_t row, uint8_t col) | |
782 | { | |
783 | cur_keycode.row = row; | |
784 | cur_keycode.col = col; | |
785 | cur_keycode.keyevent = KEY_RELEASED; | |
786 | } | |
787 | ||
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
788 | int main() |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
789 | { |
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
790 | setup(); |
21 | 791 | printf("Main loop (noop)\r\n"); |
19 | 792 | while(1) |
22 | 793 | { |
794 | timeout_h(); | |
26 | 795 | ThisThread::sleep_for(1); |
22 | 796 | } |
1
3021fc79cc3b
kinf of working prototype using a ILI9341 based TFT
David Douard <david.douard@logilab.fr>
parents:
diff
changeset
|
797 | } |