Это делает то, что я думаю, что вы собираетесь.Теперь он сбрасывается при первом вызове или при нажатии кнопки сброса.Кроме того, я добавил небольшое ожидание, чтобы избежать ненужной загрузки ЦП.
Причина, по которой ваша попытка исправить это не сработала, заключается в том, что вы инициализировали регистр сдвига таймера при каждом его запуске.Этот регистр сдвига следует оставить неинициализированным, чтобы он мог сохранить значение предыдущего запуска.