Не совсем понял Вас, но в любом случае спасибо, на основе вашего кода сделали. Кстати там строчку одну можно покороче сделать: float g=2*PI/(float)MAX_INT;
А если по прерыванию OCR2 делать проверку в каком состоянии пин вывода OCR2 и ставить в противоположное значение любой другой пин порта?
На асме:
Sbis Pinb,3 ; пропустить если пин3 =1 rjmp On_Pin ; прыжок на метку установки в 1 пина4 ; сброс пина4 в 0 Nop ; пустая операция (можно добавить для выравнивания времени выполнения кода) reti ; выход из прерывания On_Pin: Sbi PortB,4 ; установка пина4 в 1 reti ; выход из прерывания
На небольших частотах, около 10 лишних тактов, думаю роли играть не будет.