Rev 10 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 10 | Rev 11 | ||
|---|---|---|---|
| Line 5... | Line 5... | ||
| 5 | * Author: mike |
5 | * Author: mike |
| 6 | */ |
6 | */ |
| 7 | 7 | ||
| 8 | #include "main.h" |
8 | #include "main.h" |
| 9 | #include "display.h" |
9 | #include "display.h" |
| 10 | #include "timing.h" |
10 | #include "libIgnTiming/timing.h" |
| 11 | #include <cstring> |
11 | #include <cstring> |
| 12 | #include "libOLED/stm32_halDisplay.H" |
12 | #include "libOLED/stm32_halDisplay.H" |
| 13 | #include "libOLED/fontclass.H" |
13 | #include "libOLED/fontclass.H" |
| 14 | #include "libOLED/displayDial.H" |
14 | #include "libOLED/displayDial.H" |
| 15 | #include "libOLED/displayXY.H" |
15 | #include "libOLED/displayXY.H" |
| Line 26... | Line 26... | ||
| 26 | 26 | ||
| 27 | int x = 500; |
27 | int x = 500; |
| 28 | int y = 20; |
28 | int y = 20; |
| 29 | int ph = 0; |
29 | int ph = 0; |
| 30 | 30 | ||
| 31 | uint32_t press; |
31 | uint32_t press; // pressure millibar * 100 |
| 32 | int32_t temp; |
32 | int32_t temp; // temperature * 10 |
| - | 33 | bool button; // user pressed button |
|
| 33 | } |
34 | } |
| 34 | 35 | ||
| 35 | uint8_t displayBuffer[2][dataSize(WIDTH, HEIGHT)]; |
36 | uint8_t displayBuffer[MAX_DISPLAYS][dataSize(WIDTH, HEIGHT)]; |
| 36 | 37 | ||
| 37 | stm32_halDisplay_t displays[MAX_DISPLAYS] = |
38 | stm32_halDisplay_t displays[MAX_DISPLAYS] = |
| 38 | { |
39 | { |
| 39 | stm32_halDisplay_t(WIDTH, HEIGHT, DISPLAY_RAMWIDTH, displayBuffer[0], |
40 | stm32_halDisplay_t(WIDTH, HEIGHT, DISPLAY_RAMWIDTH, displayBuffer[0], |
| 40 | &hspi1, |
41 | &hspi1, |
| Line 88... | Line 89... | ||
| 88 | return -1; |
89 | return -1; |
| 89 | stm32_halDisplay_t &display = displays[dialIndex]; |
90 | stm32_halDisplay_t &display = displays[dialIndex]; |
| 90 | display.clearDisplay(BLACK); |
91 | display.clearDisplay(BLACK); |
| 91 | 92 | ||
| 92 | displayDial1.draw_scale(0, 100, 4, 2, 25); |
93 | displayDial1.draw_scale(0, 100, 4, 2, 25); |
| 93 | displayDial2.draw_scale(0, 100, 4, 2, 25); |
94 | displayDial2.draw_scale(0, 1000, 4, 2, 250); |
| 94 | 95 | ||
| 95 | // dispXY.drawAxes(); |
96 | // dispXY.drawAxes(); |
| 96 | x += 50; |
97 | x += 50; |
| 97 | y = (m.ap_sin(ph + (x / 10)) * 39) / 20 + 500; // wobbling about 1000 mB down to about 490mB |
98 | y = (m.ap_sin(ph + (x / 10)) * 39) / 20 + 500; // wobbling about 1000 mB down to about 490mB |
| 98 | 99 | ||
| Line 102... | Line 103... | ||
| 102 | if (ph > 360 * m.SINE_SCALING) |
103 | if (ph > 360 * m.SINE_SCALING) |
| 103 | ph -= 360 * m.SINE_SCALING; |
104 | ph -= 360 * m.SINE_SCALING; |
| 104 | 105 | ||
| 105 | x = 500; |
106 | x = 500; |
| 106 | } |
107 | } |
| 107 | display.dim(false); |
108 | display.dim(button ? 0 : 255); |
| 108 | char buff[10]; |
109 | char buff[10]; |
| 109 | int tim = timing(x, 1000 - y); |
110 | int tim = mapTiming(x, 1000 - y); |
| 110 | small_sprintf(buff, "%2d.%1d\xb0", tim / 10, tim % 10); |
111 | small_sprintf(buff, "%2d.%1d\xb0", tim / 10, tim % 10); |
| 111 | 112 | ||
| 112 | // dispXY.plotPoint(x, y, buff, buff1, buff2); |
113 | // dispXY.plotPoint(x, y, buff, buff1, buff2); |
| 113 | 114 | ||
| 114 | displayDial1.draw_limits(); |
115 | displayDial1.draw_limits(); |
| 115 | displayDial2.draw_limits(); |
116 | displayDial2.draw_limits(); |
| 116 | 117 | ||
| - | 118 | displayDial1.set_title("Batt"); |
|
| 117 | displayDial1.set_units("degC"); |
119 | displayDial1.set_units("degC"); |
| 118 | displayDial2.set_units("slide"); |
120 | displayDial2.set_units("press"); |
| 119 | 121 | ||
| 120 | displayDial1.draw_value(temp, 1); |
122 | displayDial1.draw_value(temp / 10, 1); |
| 121 | displayDial1.draw_needle(temp * 360 / 10000); |
123 | displayDial1.draw_needle(temp * 360 / 10000); |
| 122 | displayDial2.draw_value(y, display_t::NO_DECIMAL); |
124 | displayDial2.draw_value(press / 100, display_t::NO_DECIMAL, 4); |
| 123 | displayDial2.draw_needle(y / 3); |
125 | displayDial2.draw_needle(press / 300); |
| 124 | 126 | ||
| 125 | display.dim(true); |
- | |
| 126 | display.display(); |
127 | display.display(); |
| 127 | 128 | ||
| 128 | return 0; |
129 | return 0; |
| 129 | } |
130 | } |
| 130 | 131 | ||
| 131 | void cc_feed(uint32_t pressVal, int32_t tempVal) |
132 | void cc_feed(uint32_t pressVal, int32_t tempVal) |
| 132 | { |
133 | { |
| 133 | press = pressVal; |
134 | press = pressVal; |
| 134 | temp = tempVal; |
135 | temp = tempVal; |
| 135 | } |
136 | } |
| - | 137 | ||
| - | 138 | void cc_feed_pushbutton(uint8_t buttonVal) |
|
| - | 139 | { |
|
| - | 140 | button = buttonVal; |
|
| - | 141 | } |
|
| 136 | #if defined __cplusplus |
142 | #if defined __cplusplus |
| 137 | } |
143 | } |
| 138 | #endif |
144 | #endif |