Цитата(Метценгерштейн @ Jan 10 2015, 23:52)

настраиваю таймер1 на работу СТС, чтобы прерывался каждую и 1 мс и 100 мкс.
каждую 1 мс есть прерывание, а вот второе прерывание выполняется, но не так. cpl- это макрос- переворачивание ноги на противоположное сост.
в прерывание TIMER1_COMPB_vect входит, ногу переворачивает, но стабильно 1 мс на осцилле, а не 100 мкс
Чего забыл сделать или не учел?
Вы просто не понимаете, что период задает только то событие, которое сбрасывает/обнуляет таймер. В данном случае этим событием является достижение уровня OCR1A. Именно поэтому период зависит только от значения OCR1A, но ни в коем случае не зависит от других OCR на том же таймере. Т.е. какими бы ни были OCR1B и OCR1C, на периодичности таймера они никак не сказываются, а потому на частоту генерации не влияют.
В вашем случае прерывание TIMER1_COMPB_vect будет происходить с фазовой задержкой в 100 мкс после сброса Таймера 1, но периодичность его останется по-прежнему 1 мс, т.к. при достижении уровня OCR1B таймер не сбрасывается, а продолжает повышаться дальше, пока не достигнет OCR1A.
Образно говоря, на какой бы час OCR1B вы ни завели (цифровой) будильник, звонить он будет раз в сутки, т.к. число часов в сутках задает OCR1A. А вы надеетесь, что заведя будильник на 1 час ночи, он будет звонить у вас каждый час. Не бывать этому!

И вообще - создать две разные частоты на одном таймере невозможно. Разве что за одним редким исключением, когда одна из частот ровно вдвое чаще другой.