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
|
enum main_state_e
|
||||||
{
|
{
|
||||||
STATE_SLEEP,
|
STATE_SLEEP,
|
||||||
STATE_IDLE,
|
|
||||||
STATE_MENU,
|
STATE_MENU,
|
||||||
STATE_ADJUST,
|
STATE_ADJUST,
|
||||||
STATE_BATTERY
|
STATE_BATTERY
|
||||||
@ -188,10 +187,8 @@ enum charmap
|
|||||||
CHAR_t,
|
CHAR_t,
|
||||||
CHAR_u,
|
CHAR_u,
|
||||||
CHAR_y,
|
CHAR_y,
|
||||||
// CHAR_plus,
|
|
||||||
CHAR_minus,
|
CHAR_minus,
|
||||||
CHAR_dot,
|
CHAR_dot,
|
||||||
// CHAR_lt,
|
|
||||||
CHAR_gt,
|
CHAR_gt,
|
||||||
CHAR_deg,
|
CHAR_deg,
|
||||||
CHAR_MAX
|
CHAR_MAX
|
||||||
@ -223,14 +220,12 @@ const uint8_t PROGMEM symbols[CHAR_MAX * CHAR_SIZE] =
|
|||||||
0x20, 0x40, 0x44, 0x3D, 0x00, // j
|
0x20, 0x40, 0x44, 0x3D, 0x00, // j
|
||||||
0x7C, 0x04, 0x78, 0x04, 0x78, // m
|
0x7C, 0x04, 0x78, 0x04, 0x78, // m
|
||||||
0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
0x7C, 0x08, 0x04, 0x04, 0x08, // r
|
||||||
0x48, 0x54, 0x54, 0x54, 0x40, // s
|
0x48, 0x54, 0x54, 0x54, 0x20, // s
|
||||||
0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
0x04, 0x3F, 0x44, 0x40, 0x20, // t
|
||||||
0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
0x3C, 0x40, 0x40, 0x20, 0x7C, // u
|
||||||
0x0C, 0x50, 0x50, 0x50, 0x3C, // y
|
0x0C, 0x50, 0x50, 0x50, 0x3C, // y
|
||||||
// 0x10, 0x10, 0x7C, 0x10, 0x10, // plus
|
|
||||||
0x10, 0x10, 0x10, 0x10, 0x10, // minus
|
0x10, 0x10, 0x10, 0x10, 0x10, // minus
|
||||||
0x00, 0x60, 0x60, 0x00, 0x00, // .
|
0x00, 0x60, 0x60, 0x00, 0x00, // .
|
||||||
// 0x00, 0x08, 0x14, 0x22, 0x41, // <
|
|
||||||
0x41, 0x22, 0x14, 0x08, 0x00, // >
|
0x41, 0x22, 0x14, 0x08, 0x00, // >
|
||||||
0x0E, 0x11, 0x11, 0x0E, 0x00 // deg
|
0x0E, 0x11, 0x11, 0x0E, 0x00 // deg
|
||||||
};
|
};
|
||||||
@ -368,7 +363,6 @@ uint8_t consume_event();
|
|||||||
void spool_count(uint8_t event);
|
void spool_count(uint8_t event);
|
||||||
|
|
||||||
void process_sleep();
|
void process_sleep();
|
||||||
void process_idle();
|
|
||||||
void process_menu();
|
void process_menu();
|
||||||
void process_adjust();
|
void process_adjust();
|
||||||
void process_battery();
|
void process_battery();
|
||||||
@ -529,7 +523,8 @@ int main()
|
|||||||
attach_detach_spool();
|
attach_detach_spool();
|
||||||
|
|
||||||
display_enable(1);
|
display_enable(1);
|
||||||
state = STATE_IDLE;
|
print_menu(1);
|
||||||
|
state = STATE_MENU;
|
||||||
|
|
||||||
sei();
|
sei();
|
||||||
while(1)
|
while(1)
|
||||||
@ -540,10 +535,6 @@ int main()
|
|||||||
process_sleep();
|
process_sleep();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STATE_IDLE:
|
|
||||||
process_idle();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case STATE_MENU:
|
case STATE_MENU:
|
||||||
process_menu();
|
process_menu();
|
||||||
break;
|
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;
|
uint8_t i;
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (start_x >= OLED_X_SIZE)
|
if (start_x >= OLED_X_SIZE)
|
||||||
{
|
{
|
||||||
start_x = OLED_X_SIZE - 1;
|
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;
|
end_y = start_y;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
cmd_list[1] = start_x;
|
cmd_list[1] = start_x;
|
||||||
cmd_list[2] = end_x;
|
cmd_list[2] = end_x;
|
||||||
@ -1014,9 +1003,8 @@ void print_option(uint8_t option)
|
|||||||
|
|
||||||
void print_battery_percent()
|
void print_battery_percent()
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
static uint8_t old_symbols[3] = {0xFF, 0xFF, 0xFF};
|
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 i;
|
||||||
uint8_t symbol;
|
uint8_t symbol;
|
||||||
uint8_t is_first = 1;
|
uint8_t is_first = 1;
|
||||||
@ -1027,9 +1015,9 @@ void print_battery_percent()
|
|||||||
percent *= 100;
|
percent *= 100;
|
||||||
percent /= BATTERY_CAPACITY_MAH;
|
percent /= BATTERY_CAPACITY_MAH;
|
||||||
|
|
||||||
if (percent > 100)
|
if (percent < 0)
|
||||||
{
|
{
|
||||||
percent = 100;
|
percent = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print percent top to bot
|
// Print percent top to bot
|
||||||
@ -1049,10 +1037,9 @@ void print_battery_percent()
|
|||||||
if (symbol != old_symbols[3 - i])
|
if (symbol != old_symbols[3 - i])
|
||||||
{
|
{
|
||||||
print_symbol(symbol, OLED_X_SIZE - (CHAR_SIZE + 1) * 2, 3 - i + 1, 0);
|
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)
|
void print_battery_stat(uint8_t force_draw)
|
||||||
@ -1531,7 +1518,8 @@ void process_sleep()
|
|||||||
display_enable(1);
|
display_enable(1);
|
||||||
read_battery(&battery_mAh, &battery_mV, &battery_temp);
|
read_battery(&battery_mAh, &battery_mV, &battery_temp);
|
||||||
sleep_when_ms = ms + DISPLAY_DELAY;
|
sleep_when_ms = ms + DISPLAY_DELAY;
|
||||||
state = STATE_IDLE;
|
print_menu(1);
|
||||||
|
state = STATE_MENU;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case EVENT_BTN_UP:
|
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()
|
void process_menu()
|
||||||
{
|
{
|
||||||
uint8_t curr_event;
|
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 in auto mode
|
||||||
print_menu(0);
|
print_menu(0);
|
||||||
}
|
|
||||||
|
|
||||||
if (ms >= sleep_when_ms)
|
if (ms >= sleep_when_ms)
|
||||||
{
|
{
|
||||||
@ -1747,7 +1683,8 @@ void process_adjust()
|
|||||||
write_eeprom_val(eeprom_idx, count_value, rot_dir_is_A);
|
write_eeprom_val(eeprom_idx, count_value, rot_dir_is_A);
|
||||||
|
|
||||||
// Go back to idle
|
// Go back to idle
|
||||||
state = STATE_IDLE;
|
print_menu(1);
|
||||||
|
state = STATE_MENU;
|
||||||
long_press_when_ms = 0xFFFFFFFF;
|
long_press_when_ms = 0xFFFFFFFF;
|
||||||
sleep_when_ms = ms + DISPLAY_DELAY;
|
sleep_when_ms = ms + DISPLAY_DELAY;
|
||||||
spool_counting = 1;
|
spool_counting = 1;
|
||||||
@ -1793,7 +1730,8 @@ void process_battery()
|
|||||||
if (ms >= long_press_when_ms)
|
if (ms >= long_press_when_ms)
|
||||||
{
|
{
|
||||||
print_clear_menu_area();
|
print_clear_menu_area();
|
||||||
state = STATE_IDLE;
|
print_menu(1);
|
||||||
|
state = STATE_MENU;
|
||||||
long_press_when_ms = 0xFFFFFFFF;
|
long_press_when_ms = 0xFFFFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user