PER Firmware
Loading...
Searching...
No Matches
lcd.h
Go to the documentation of this file.
1#ifndef LCD_H
2#define LCD_H
3
4#include <stdint.h>
5
7
15static constexpr uint32_t LCD_BAUD_RATE = 115'200;
17
18typedef enum : uint8_t {
24 NUM_PAGES, // leave as auto to count number of pages
25 PAGE_PREFLIGHT, // not selectable, only shown on power on
26} page_t;
27
28typedef struct {
29 void (*update)(void);
30 void (*move_up)(void);
31 void (*move_down)(void);
32 void (*select)(void);
33 void (*telemetry)(void);
34 char *string;
36
37extern volatile page_t curr_page;
38
39void LCD_init(uint32_t baud_rate);
40void LCD_tx_update(void);
41void advancePage(void);
42void backPage(void);
43void selectItem(void);
44void moveUp(void);
45void moveDown(void);
46void updatePage(void);
47void updateTelemetryPages(void);
48
49#endif // LCD_H
void backPage(void)
Moves to the previous selectable page.
Definition lcd.c:115
void LCD_init(uint32_t baud_rate)
Definition lcd.c:75
void updatePage(void)
Updates LCD display page.
Definition lcd.c:131
void advancePage(void)
Advances to the next selectable page.
Definition lcd.c:103
void selectItem(void)
Definition lcd.c:167
page_t
Definition lcd.h:18
@ PAGE_VCU
Definition lcd.h:23
@ PAGE_FAULTS
Definition lcd.h:20
@ PAGE_RACE
Definition lcd.h:19
@ PAGE_PREFLIGHT
Definition lcd.h:25
@ NUM_PAGES
Definition lcd.h:24
@ PAGE_CALIBRATION
Definition lcd.h:21
@ PAGE_AMK
Definition lcd.h:22
void LCD_tx_update(void)
Called periodically to send commands to the Nextion LCD display via USART.
Definition lcd.c:87
void moveDown(void)
Definition lcd.c:157
static constexpr uint32_t LCD_BAUD_RATE
Definition lcd.h:15
void updateTelemetryPages(void)
Updates current telemetry page by calling its handler if available.
Definition lcd.c:180
void moveUp(void)
Definition lcd.c:147
volatile page_t curr_page
Definition lcd.c:23
static constexpr PHAL_USART_Idx_t LCD_USART
Definition lcd.h:16
PHAL_USART_Idx_t
Definition usart.h:6
@ USART1_IDX
Definition usart.h:7
Definition lcd.h:28
char * string
Definition lcd.h:34