Я уже где-то отвечал на такой же вопрос. Суть в том, чтобы вообще понимать что такое таймер и как его считать без формул. ))))
http://radiokot.ru/forum/viewtopic.php? ... 8#p2717558
Один из критериев это частота ядра. Она у вас 4,8 МГц. Или 4800000 Гц. Правильно?
Теперь у вас предделитель таймера выставляется. Его можно поставить 8, 64, 256, 1024... (выставляется в регистрах настройки таймера и биты эти в регистрах называются CS см. даташит).
Пусть вы выбрали предделитель на 256. Тогда ваша частота тактирования МК будет делиться на 256, т.е. 4800000 / 256 = 18750 Гц. С такой частотой будет считать таймер. А сам процессор у МК будет считать с частотой 4,8 МГц. Потому что таймер - это периферия МК и работает сам по себе. Что значит эта частота? А то, что таймер будет прибавлять по единичке в свой счетный регистр с частотй 18750 Гц. Ну или если вычислить период, то по формуле периода Т=1/f получим 1 / 18750 = 0,000053333 сек. Т.е. один "тик,щелчек" таймера будет происходить со скоростью 0,000053333 сек, что тоже самое 0,053 мс, что тоже самое 53 мкс.
Теперь дальше. Контроллер у нас 8 битный. И таймер 0 тоже восьмибитный. Значит счетный регистр у него может считать только от 0 до 255 (всего 256). Поэтому ваши 256 это всего лишь число до которого может считать таймер и переполнится (сбросится в ноль и начнет по кругу).
Простой математикой получаем, что таймер досчитает до 256 за (256 * 0,000053333) 0,013653 секунды.
Если вы используете переполнение, то до одной секунды в никак не досчитаете, а если используете режим "совпадения со счетным регистром", то тем более или также. )))
И даже если сменить предделитель на самый большой, все равно будет переполняться быстрее, чем за 1 секунду.
Чтобы тикать так, то вам в прерывании по переполнению надо будет заводить еще одну переменную и ее заполнять каждое прерывание по 1 значению (прибавлять). И уже ее считать, когда будет 1 секунда.
З.Ы. В регистр сравнения записывается число с которым счетный регистр таймера сравнивает свое текущее значение. И если сравнение произошло, то вызывает соответствующее прерывание и сбрасывается в ноль, потом продолжает считать по новому кругу.
Здесь же надо смотреть режим работы таймера, т.к. может и не сбрасываться, а считать в другую сторону, все зависит от режима работы таймера... (см. даташиты)...