pashaumnov писал(а):делаю часы ... тактируем от внутреннего генератора частота 9,6мгц
часы будут так себе, за сутки ошибаться будут минут на 20.
в чем у вас проблема?
вот вариант расчета:
1. используем самый большой из доступных предделителей таймера 1024. то есть таймер считать будет с частотой 9600000/1024=9375 Гц.
2. если работать по переполнению таймера, то прерывание по переполнению будет возникать с частотой 9375/256=36,62109375 Гц. число очень неудобное, значит, необходимо использовать программный пересчет с режимом СТС
3. 9375 делится нацело на 3, 5, 15, 25, 75, 125, 375, 625 и 1775. разумеется, для 8-битного таймера можно использовать значение только меньше 255, поэтому выбираем любое из подходящих и таким образом настраиваем режим СТС. пусть будет самое большое из возможных 125. тогда прерывание по совпадению будет возникать с частотой 9375/125=75 Гц, т.е. 75 раз в секунду.
4. заводим дополнительный программный однобайтный счетчик в обработчике прерываний, и этим самым счетчиком каждое прерывание считаем до 75 - как досчитали, значит, прошла "ровно" секунда.
если не хотите режим СТС, то надо попробовать поступить аналогично, подобрав такие значения предделителя и программного счетчика, чтобы в итоге получить целые числа, как результат деления. но сразу скажу, результат будет хуже, т.к. программные счетчики уже не будут однобайтными, а значит, обработчик прерывания будет более сложным, а в attiny13 и так мало места.