diff --git a/firmware/drivers/lcd-16bit.c b/firmware/drivers/lcd-16bit.c index 4ec9ddbac9..a4ae6cd553 100644 --- a/firmware/drivers/lcd-16bit.c +++ b/firmware/drivers/lcd-16bit.c @@ -765,11 +765,9 @@ static void scroll_thread(void) } } else { - /* pause at beginning of line */ - if (s->offset >= s->width) { - s->offset = 0; - s->start_tick = current_tick + scroll_delay * 2; - } + /* scroll forward the whole time */ + if (s->offset >= s->width) + s->offset %= s->width; } lastmode = drawmode; diff --git a/firmware/drivers/lcd-h100-remote.c b/firmware/drivers/lcd-h100-remote.c index 98da42710f..33a8b3790d 100644 --- a/firmware/drivers/lcd-h100-remote.c +++ b/firmware/drivers/lcd-h100-remote.c @@ -1323,11 +1323,9 @@ static void scroll_thread(void) } } else { - /* pause at beginning of line */ - if (s->offset >= s->width) { - s->offset = 0; - s->start_tick = current_tick + scroll_delay * 2; - } + /* scroll forward the whole time */ + if (s->offset >= s->width) + s->offset %= s->width; } lastmode = drawmode; diff --git a/firmware/drivers/lcd-h100.c b/firmware/drivers/lcd-h100.c index 739e4b2862..ba959d23de 100644 --- a/firmware/drivers/lcd-h100.c +++ b/firmware/drivers/lcd-h100.c @@ -1236,11 +1236,9 @@ static void scroll_thread(void) } } else { - /* pause at beginning of line */ - if (s->offset >= s->width) { - s->offset = 0; - s->start_tick = current_tick + scroll_delay * 2; - } + /* scroll forward the whole time */ + if (s->offset >= s->width) + s->offset %= s->width; } lastmode = drawmode; diff --git a/firmware/drivers/lcd-recorder.c b/firmware/drivers/lcd-recorder.c index a29257342e..7e064b8001 100644 --- a/firmware/drivers/lcd-recorder.c +++ b/firmware/drivers/lcd-recorder.c @@ -1065,11 +1065,9 @@ static void scroll_thread(void) } } else { - /* pause at beginning of line */ - if (s->offset >= s->width) { - s->offset = 0; - s->start_tick = current_tick + scroll_delay * 2; - } + /* scroll forward the whole time */ + if (s->offset >= s->width) + s->offset %= s->width; } lastmode = drawmode;