diff options
author | Daniel Friesel <derf@finalrewind.org> | 2016-03-16 20:20:40 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2016-03-16 20:20:40 +0100 |
commit | bdb7cce4d563250f567dac299c4cab25d01bf329 (patch) | |
tree | 8e7a336198cabbe083b273209d5f621c9b44a37f /src/display.cc | |
parent | a7552770f8d98f8993c56d592a59b9963eb6e51f (diff) |
Fix occasional lag when switching animations
Diffstat (limited to 'src/display.cc')
-rw-r--r-- | src/display.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/display.cc b/src/display.cc index f06b5e3..98b394a 100644 --- a/src/display.cc +++ b/src/display.cc @@ -45,8 +45,6 @@ void Display::enable() void Display::multiplex() { - static uint8_t scroll; - /* * To avoid flickering, do not put any code (or expensive index * calculations) between the following three lines. @@ -57,8 +55,8 @@ void Display::multiplex() if (++active_col == 8) { active_col = 0; - if (++scroll == current_anim->speed) { - scroll = 0; + if (++update_cnt == current_anim->speed) { + update_cnt = 0; need_update = 1; } } @@ -170,6 +168,7 @@ void Display::reset() { for (uint8_t i = 0; i < 8; i++) disp_buf[i] = 0xff; + update_cnt = 0; str_pos = 0; str_chunk = 0; char_pos = -1; |