Removed IDLE state. Enabled battery percentage printing.
This commit is contained in:
parent
d0125ef276
commit
063c343ef4
88
code/main.c
88
code/main.c
@ -85,7 +85,6 @@ enum btn_state_e
|
||||
enum main_state_e
|
||||
{
|
||||
STATE_SLEEP,
|
||||
STATE_IDLE,
|
||||
STATE_MENU,
|
||||
STATE_ADJUST,
|
||||
STATE_BATTERY
|
||||
@ -188,10 +187,8 @@ enum charmap
|
||||
CHAR_t,
|
||||
CHAR_u,
|
||||
CHAR_y,
|
||||
// CHAR_plus,
|
||||
CHAR_minus,
|
||||
CHAR_dot,
|
||||
// CHAR_lt,
|
||||
CHAR_gt,
|
||||
CHAR_deg,
|
||||
CHAR_MAX
|
||||
@ -223,14 +220,12 @@ const uint8_t PROGMEM symbols[CHAR_MAX * CHAR_SIZE] =
|
||||
0x20, 0x40, 0x44, 0x3D, 0x00, // j
|
||||
0x7C, 0x04, 0x78, 0x04, 0x78, // m
|
||||
0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
||||
0x48, 0x54, 0x54, 0x54, 0x40, // s
|
||||
0x48, 0x54, 0x54, 0x54, 0x20, // s
|
||||
0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
||||
0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
||||
0x0C, 0x50, 0x50, 0x50, 0x3C, // y
|
||||
// 0x10, 0x10, 0x7C, 0x10, 0x10, // plus
|
||||
0x10, 0x10, 0x10, 0x10, 0x10, // minus
|
||||
0x00, 0x60, 0x60, 0x00, 0x00, // .
|
||||
// 0x00, 0x08, 0x14, 0x22, 0x41, // <
|
||||
0x41, 0x22, 0x14, 0x08, 0x00, // >
|
||||
0x0E, 0x11, 0x11, 0x0E, 0x00 // deg
|
||||
};
|
||||
@ -368,7 +363,6 @@ uint8_t consume_event();
|
||||
void spool_count(uint8_t event);
|
||||
|
||||
void process_sleep();
|
||||
void process_idle();
|
||||
void process_menu();
|
||||
void process_adjust();
|
||||
void process_battery();
|
||||
@ -529,7 +523,8 @@ int main()
|
||||
attach_detach_spool();
|
||||
|
||||
display_enable(1);
|
||||
state = STATE_IDLE;
|
||||
print_menu(1);
|
||||
state = STATE_MENU;
|
||||
|
||||
sei();
|
||||
while(1)
|
||||
@ -540,10 +535,6 @@ int main()
|
||||
process_sleep();
|
||||
break;
|
||||
|
||||
case STATE_IDLE:
|
||||
process_idle();
|
||||
break;
|
||||
|
||||
case STATE_MENU:
|
||||
process_menu();
|
||||
break;
|
||||
@ -654,7 +645,6 @@ void display_set_area(uint8_t start_x, uint8_t end_x, uint8_t start_y, uint8_t e
|
||||
};
|
||||
uint8_t i;
|
||||
|
||||
#if 0
|
||||
if (start_x >= OLED_X_SIZE)
|
||||
{
|
||||
start_x = OLED_X_SIZE - 1;
|
||||
@ -684,7 +674,6 @@ void display_set_area(uint8_t start_x, uint8_t end_x, uint8_t start_y, uint8_t e
|
||||
{
|
||||
end_y = start_y;
|
||||
}
|
||||
#endif
|
||||
|
||||
cmd_list[1] = start_x;
|
||||
cmd_list[2] = end_x;
|
||||
@ -1014,9 +1003,8 @@ void print_option(uint8_t option)
|
||||
|
||||
void print_battery_percent()
|
||||
{
|
||||
#if 0
|
||||
static uint8_t old_symbols[3] = {0xFF, 0xFF, 0xFF};
|
||||
uint32_t percent = BATTERY_CAPACITY_MAH;
|
||||
int32_t percent = BATTERY_CAPACITY_MAH;
|
||||
uint8_t i;
|
||||
uint8_t symbol;
|
||||
uint8_t is_first = 1;
|
||||
@ -1027,9 +1015,9 @@ void print_battery_percent()
|
||||
percent *= 100;
|
||||
percent /= BATTERY_CAPACITY_MAH;
|
||||
|
||||
if (percent > 100)
|
||||
if (percent < 0)
|
||||
{
|
||||
percent = 100;
|
||||
percent = 0;
|
||||
}
|
||||
|
||||
// Print percent top to bot
|
||||
@ -1049,10 +1037,9 @@ void print_battery_percent()
|
||||
if (symbol != old_symbols[3 - i])
|
||||
{
|
||||
print_symbol(symbol, OLED_X_SIZE - (CHAR_SIZE + 1) * 2, 3 - i + 1, 0);
|
||||
old_symbols[3 - i + 1] = symbol;
|
||||
old_symbols[3 - i] = symbol;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void print_battery_stat(uint8_t force_draw)
|
||||
@ -1531,7 +1518,8 @@ void process_sleep()
|
||||
display_enable(1);
|
||||
read_battery(&battery_mAh, &battery_mV, &battery_temp);
|
||||
sleep_when_ms = ms + DISPLAY_DELAY;
|
||||
state = STATE_IDLE;
|
||||
print_menu(1);
|
||||
state = STATE_MENU;
|
||||
break;
|
||||
|
||||
case EVENT_BTN_UP:
|
||||
@ -1547,48 +1535,6 @@ void process_sleep()
|
||||
}
|
||||
}
|
||||
|
||||
void process_idle()
|
||||
{
|
||||
uint8_t curr_event;
|
||||
|
||||
while (event_count > 0)
|
||||
{
|
||||
curr_event = consume_event();
|
||||
switch (curr_event)
|
||||
{
|
||||
case EVENT_ROT_CW: // Fall-through
|
||||
case EVENT_ROT_CCW:
|
||||
spool_count(curr_event);
|
||||
break;
|
||||
|
||||
case EVENT_BTN_DOWN:
|
||||
long_press_when_ms = ms + LONG_PRESS;
|
||||
sleep_when_ms = ms + DISPLAY_DELAY;
|
||||
break;
|
||||
|
||||
case EVENT_BTN_UP:
|
||||
long_press_when_ms = 0xFFFFFFFF;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Hold button to enter menu
|
||||
if (ms >= long_press_when_ms)
|
||||
{
|
||||
state = STATE_MENU;
|
||||
menu_option = 0;
|
||||
long_press_when_ms = 0xFFFFFFFF;
|
||||
print_menu(1);
|
||||
}
|
||||
|
||||
// Go to sleep
|
||||
if (ms >= sleep_when_ms)
|
||||
{
|
||||
state = STATE_SLEEP;
|
||||
sleep_when_ms = 0xFFFFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
void process_menu()
|
||||
{
|
||||
uint8_t curr_event;
|
||||
@ -1636,18 +1582,8 @@ void process_menu()
|
||||
}
|
||||
}
|
||||
|
||||
// Hold button to exit menu
|
||||
if (ms >= long_press_when_ms)
|
||||
{
|
||||
print_clear_menu_area();
|
||||
state = STATE_IDLE;
|
||||
long_press_when_ms = 0xFFFFFFFF;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Print Menu in auto mode
|
||||
print_menu(0);
|
||||
}
|
||||
|
||||
if (ms >= sleep_when_ms)
|
||||
{
|
||||
@ -1747,7 +1683,8 @@ void process_adjust()
|
||||
write_eeprom_val(eeprom_idx, count_value, rot_dir_is_A);
|
||||
|
||||
// Go back to idle
|
||||
state = STATE_IDLE;
|
||||
print_menu(1);
|
||||
state = STATE_MENU;
|
||||
long_press_when_ms = 0xFFFFFFFF;
|
||||
sleep_when_ms = ms + DISPLAY_DELAY;
|
||||
spool_counting = 1;
|
||||
@ -1793,7 +1730,8 @@ void process_battery()
|
||||
if (ms >= long_press_when_ms)
|
||||
{
|
||||
print_clear_menu_area();
|
||||
state = STATE_IDLE;
|
||||
print_menu(1);
|
||||
state = STATE_MENU;
|
||||
long_press_when_ms = 0xFFFFFFFF;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user