diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 1288d9a..7fabab9 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c @@ -1495,7 +1495,7 @@ static bool tsc2100_debug(void) static bool view_battery(void) { int view = 0; - int i, x, y; + int i, x, y, ygraph, ygraph_old; unsigned short maxv, minv; lcd_setfont(FONT_SYSFIXED); @@ -1521,14 +1521,24 @@ static bool view_battery(void) minv / 1000, minv % 1000, maxv / 1000, maxv % 1000); x = 0; + ygraph_old = 0; for (i = BAT_LAST_VAL - 1; i >= 0; i--) { - y = (power_history[i] - minv) * BAT_YSPACE / (maxv - minv); - lcd_set_drawmode(DRMODE_SOLID|DRMODE_INVERSEVID); - lcd_vline(x, LCD_HEIGHT-1, 20); - lcd_set_drawmode(DRMODE_SOLID); - lcd_vline(x, LCD_HEIGHT-1, - MIN(MAX(LCD_HEIGHT-1 - y, 20), LCD_HEIGHT-1)); - x++; + if (power_history[i]) + { + y = (power_history[i] - minv) * BAT_YSPACE / + (maxv - minv); + ygraph = MIN(MAX(LCD_HEIGHT-1 - y, 20), + LCD_HEIGHT-1); + lcd_set_drawmode(DRMODE_SOLID); + + if (ygraph_old) + lcd_vline(x, ygraph_old, ygraph); + else + lcd_vline(x, ygraph, ygraph); + + ygraph_old = ygraph; + x++; + } } break;