Changes for menu

* Make Systick a 100us Timer. Millisecond ticks are still untouched.
* LCD now has a 100us resolution tick
* LCD uses 500us delay for waitstate
* Make 'About' menu verbose:
	* Add 3 page menu
	* 1st page: Generic info
	* 2nd page: Version info
	* 3rd page: Uptime in seconds
This commit is contained in:
2020-06-14 13:25:47 +02:00
parent d178910594
commit 43b4fd1e77
6 changed files with 115 additions and 26 deletions

View File

@@ -403,7 +403,7 @@ enum lcd_fsm_ret lcd_fsm_write_buffer(const char (*display_buffer)[21])
state_cnt++;
break;
case 4:
if (!systick_ticks_have_passed(timestamp, 5)) {
if (!systick_ticks_have_passed(timestamp, 4)) {
ret = LCD_FSM_WAIT_CALL;
} else {
ret = LCD_FSM_CALL_AGAIN;

View File

@@ -88,7 +88,7 @@ void menu_entry_enter(struct lcd_menu *menu, menu_func_t entry, bool handle_imme
menu_handle(menu, menu->inputs.rotary_encoder_delta, menu->inputs.push_button);
}
void menu_override_lcd_output(struct lcd_menu *menu, uint8_t row_num, const char *text)
void menu_lcd_output(struct lcd_menu *menu, uint8_t row_num, const char *text)
{
if (!menu || !menu->update_display)
return;
@@ -209,6 +209,26 @@ void menu_ack_rotary_delta(struct lcd_menu *menu)
menu->inputs.rotary_encoder_delta = 0;
}
int16_t menu_get_rotary_delta(const struct lcd_menu *menu)
{
int16_t ret = 0;
if (menu)
ret = menu->inputs.rotary_encoder_delta;
return ret;
}
enum button_state menu_get_button_state(const struct lcd_menu *menu)
{
enum button_state ret = BUTTON_IDLE;
if (menu)
ret = menu->inputs.push_button;
return ret;
}
void menu_display_clear(struct lcd_menu *menu)
{
uint8_t i;