Rev 1593 | Rev 1866 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1593 | Rev 1773 | ||
---|---|---|---|
Line 71... | Line 71... | ||
71 | /** |
71 | /** |
72 | * draw a compass rose at <x>/<y> for <heading> |
72 | * draw a compass rose at <x>/<y> for <heading> |
73 | */ |
73 | */ |
74 | void draw_compass(uint8_t x, uint8_t y, uint16_t heading) { |
74 | void draw_compass(uint8_t x, uint8_t y, uint16_t heading) { |
75 | //char* rose = "---N---O---S---W---N---O---S---W---N---O---S---W"; |
75 | //char* rose = "---N---O---S---W---N---O---S---W---N---O---S---W"; |
76 | static char rose[] PROGMEM = {216, 215, 216, 211, 216, 215, 216, 213, 216, 215, 216, 212, |
76 | static const char rose[] PROGMEM = {216, 215, 216, 211, 216, 215, 216, 213, 216, 215, 216, 212, |
77 | 216, 215, 216, 214, 216, 215, 216, 211, 216, 215, 216, 213, |
77 | 216, 215, 216, 214, 216, 215, 216, 211, 216, 215, 216, 213, |
78 | 216, 215, 216, 212, 216, 215, 216, 214, 216, 215, 216, 211, |
78 | 216, 215, 216, 212, 216, 215, 216, 214, 216, 215, 216, 211, |
79 | 216, 215, 216, 213, 216, 215, 216, 212, 216, 215, 216, 214}; |
79 | 216, 215, 216, 213, 216, 215, 216, 212, 216, 215, 216, 214}; |
80 | // the center is char 19 (north), we add the current heading in 8th |
80 | // the center is char 19 (north), we add the current heading in 8th |
81 | // which would be 22.5 degrees, but float would bloat up the code |
81 | // which would be 22.5 degrees, but float would bloat up the code |
Line 137... | Line 137... | ||
137 | if (chr < 0x74) chr = 0x74; |
137 | if (chr < 0x74) chr = 0x74; |
138 | } |
138 | } |
139 | write_char_xy(x, y, chr); |
139 | write_char_xy(x, y, chr); |
140 | } |
140 | } |
Line -... | Line 141... | ||
- | 141 | ||
141 | 142 | ||
142 | // big vario arrays |
143 | // big vario array |
143 | const char vario_00[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xff}; |
144 | const char vario_pnt[15][5] PROGMEM = { |
144 | const char vario_01[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xc0}; |
145 | {0x00, 0x00, 0xc2, 0xff, 0xff}, |
145 | const char vario_02[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0xc1}; |
146 | {0x00, 0x00, 0xc2, 0xff, 0xc0}, |
146 | const char vario_03[5] PROGMEM = {0x00, 0x00, 0xc2, 0xff, 0x00}; |
147 | {0x00, 0x00, 0xc2, 0xff, 0xc1}, |
147 | const char vario_04[5] PROGMEM = {0x00, 0x00, 0xc2, 0xc0, 0x00}; |
148 | {0x00, 0x00, 0xc2, 0xff, 0x00}, |
148 | const char vario_05[5] PROGMEM = {0x00, 0x00, 0xc2, 0xc1, 0x00}; |
149 | {0x00, 0x00, 0xc2, 0xc0, 0x00}, |
149 | const char vario_06[5] PROGMEM = {0x00, 0x00, 0xc2, 0x00, 0x00}; |
150 | {0x00, 0x00, 0xc2, 0xc1, 0x00}, |
150 | const char vario_07[5] PROGMEM = {0x00, 0x00, 0xbb, 0x00, 0x00}; |
151 | {0x00, 0x00, 0xc2, 0x00, 0x00}, |
151 | const char vario_08[5] PROGMEM = {0x00, 0x00, 0xc3, 0x00, 0x00}; |
152 | {0x00, 0x00, 0xbb, 0x00, 0x00}, |
152 | const char vario_09[5] PROGMEM = {0x00, 0xc4, 0xc3, 0x00, 0x00}; |
153 | {0x00, 0x00, 0xc3, 0x00, 0x00}, |
153 | const char vario_10[5] PROGMEM = {0x00, 0xc5, 0xc3, 0x00, 0x00}; |
154 | {0x00, 0xc4, 0xc3, 0x00, 0x00}, |
154 | const char vario_11[5] PROGMEM = {0x00, 0xff, 0xc3, 0x00, 0x00}; |
155 | {0x00, 0xc5, 0xc3, 0x00, 0x00}, |
155 | const char vario_12[5] PROGMEM = {0xc4, 0xff, 0xc3, 0x00, 0x00}; |
156 | {0x00, 0xff, 0xc3, 0x00, 0x00}, |
156 | const char vario_13[5] PROGMEM = {0xc5, 0xff, 0xc3, 0x00, 0x00}; |
157 | {0xc4, 0xff, 0xc3, 0x00, 0x00}, |
157 | const char vario_14[5] PROGMEM = {0xff, 0xff, 0xc3, 0x00, 0x00}; |
- | |
158 | const char* vario_pnt[15] PROGMEM = {vario_00, vario_01, vario_02, vario_03, vario_04, |
158 | {0xc5, 0xff, 0xc3, 0x00, 0x00}, |
159 | vario_05, vario_06, vario_07, vario_08, |
- | |
160 | vario_09, vario_10, vario_11, vario_12, |
159 | {0xff, 0xff, 0xc3, 0x00, 0x00} |
Line 161... | Line 160... | ||
161 | vario_13, vario_14}; |
160 | }; |
162 | 161 | ||
163 | /** |
162 | /** |
164 | * draw a bigger vario with middle at <x>/<y> acording to <variometer> |
163 | * draw a bigger vario with middle at <x>/<y> acording to <variometer> |
165 | */ |
164 | */ |
166 | void draw_big_variometer(uint8_t x, uint8_t y, int16_t variometer) { |
165 | void draw_big_variometer(uint8_t x, uint8_t y, int16_t variometer) { |
167 | int16_t index = 7 + variometer; |
166 | int16_t index = 7 + variometer; |
Line 168... | Line 167... | ||
168 | if (index > 14) index = 14; |
167 | if (index > 14) index = 14; |
169 | else if (index < 0) index = 0; |
168 | else if (index < 0) index = 0; |
Line 170... | Line 169... | ||
170 | 169 | ||
171 | write_string_pgm_down(x, y - 2, (const char *)(pgm_read_word(&(vario_pnt[index]))), 5); |
170 | write_string_pgm_down(x, y - 2, vario_pnt[index], 5); |