Цитата(=GM= @ Feb 26 2008, 18:09)

Надо бы объяснить общественности, где ошибка, чтобы будущие читатели могли понять, где была собака зарыта, в смысле, где была ошибка, а уж потом закрывать тему. Кстати, какой подсчёт импульсов в T0, о чём вы говорите?
Таймер T0 обладает тремя режимами ШИМ (Normal, CTC, Fast PWM ). В режиме СТС тактовые импульсы подаются напрямую на таймер и значение регистра таймера непрерывно сравнивается с значением записанным программно в регистр OCR0A. При достижении счетчика таймера значения регистра OCR0A изменяется значение на выходе, таймер сбрасывается и все начинается сначала. Программно надо разрешить выход таймера на PB0 ( OC0A-это и есть прямой выход таймера). Практически получается делитель тактовой частоты на значение записанное в OCR0A.
У меня была проблема в том, что я видел и мог программно менять выходную частоту, но она была очень низкой. ОШИБКА сидела в программаторе. Я использую ELNEC и в рабочих опциях не стояла птица в клеточке "Device configuration (Lock & Fuses)", т.е. контроллер работал на низкой частоте, которая еще и делилась.
Некоторые предлагали простой на первый взгляд вариант: вкл. и выкл. в цикле выход (дергать выход). Напишите эту прогу на С и затем посмотрите её вид в ассемблере, там компилятор встраивает ещё кучу переходов, т.е. частоту не измерить.