я вот понял, попробую "перевести"...
есть исходная частота (8 МГц), есть делители на входе таймера, они как редуктор тормозят входную тактовую частоту в сколько-то (настраивается) раз, т.е таймер может тикать как на частоте 8 МГц, так и в какоето целое число раз (набор доступных делителей смотри в ДШ). каждый тик таймера увеличивает его счетчик на 1, но таймер не может считать вечно, когдато он переполнится (так-же как переворачиваются 999999 в 000000 на спидометре автомобиля...) то, как долго таймер может не переполняться как-раз и определяется его разрядностью (так-же как и в спидометре количеством счетных колёс)...
_____________
теперь о применении на практике:
тебе надо добиться, используя доступные значения делителя, чтобы счетчик тикал с частотой в целое число раз больше требуемой, но чтобы это число вместилось в разрядность таймера (для 8 битных это 256, для 16 битных - 65536 (2^16) )
тебе надо 1кГц это в 8000 раз меньше 8 МГц (число целое, и не больше 65536 - значит его можно использовать для Т1) (делитель при этом =1)
также для Т1 пойдут делители на 8 и на 64, а вот для 8 битных таймеров пойдет только делитель на 64 т.к. только (8000/64)<256 и ещё целое (при следующем доступном делителе 256 уже получается 31,25 кГц)
допустим мы оставили делитель 1, значит чтобы прошла 1мс таймер должен сосчитать от 0 до 7999, 7999 = 1F3F (HEX)
осталось сделать так, чтобы счетчик считал до этого числа и перезапускался
для этого есть режим СТС, но он нам не подходит, т.к. нам ещё нужен ШИМ сигнал на выходе, ещё есть режимы PWM - выберем "fastPWM top OCR1A" и запишем наше число в OCR1A, теперь таймер работает с частотой 1 кГц и дает выход....
нет, выход он пока не даёт, его ещё подключить надо... компаратор "А" уже занят, подключим к "В": OutB - Inverted PWM
можно выбрать и неинвертируемый, но он не умеет полностью закрываться - маленькие иголочки при сбросе таймера будут просачиваться... поэтому берём инвертируемый, но в коде это учтём.
также надо включить прерывание по совпадению А, чтобы при каждом обороте таймера ЦП контроллера об этом узнавал.
Вот, собственно и вся настройка таймера...
Добавлено after 7 minutes 29 seconds:neid, ещё я очень рекомендую скачать программу
Algorithm Builder (v5.44)в ней зоздать и настроить проект: Файл->новый..... проект->проект оптионс (тут выбрать свой МК и задать его тактовую)
потом кликнуть на красную "S" выбрать таймер/счетчик1 и поковыряться с его параметрами, и, думаю сразу станет понятней его работа...