Posiedziałem pokombinowałem i w końcu wpadłem na to dlaczego tak "dziwnie" się to zachowywało.
Otóż cała sprawa dotyczy momentu kiedy wpisuje się zmienna do rejestru OCR.
Nie można tego robić w głównej pętli programu a to dlatego, że jeśli przykładowo licznik liczy od 60000 i dajmy na to doliczy do 60050 (OCR = 60050, tutaj zmiana stanu na końcówce) i zaczniemy zwiększać zmienną w rejestrze OCR to dzieje się to na tyle szybko, że dochodzi jakby do wyprzedzenia wartości licznika (OCR=62000 a licznik doliczył dopiero do 61000) to siłą rzeczy nastąpi ponowna zmiana stanu.
Nie wiem czy dobrze to rozumiem ale robiąc to w ten sposób, że zmienną A zmieniam w pętli a w przerwaniu timera wpisuję ją do rejestru cały problem zniknął. Zmiana fazy działa płynnie w obie strony dla OCR1A lub OCR1B i nie występuje wcześniej opisana zmiana sygnału o 180 stopni.
Mam nadzieję, że dobrze zrozumiałem błąd jeśli nie to proszę o poprawienie mojego toku myślenia
Teraz zastanawiam się czy dałoby się zrobić coś podobnego z wykorzystaniem PWM. Mógłbym w ten sposób nie tylko zmieniać fazę sygnału ale też jego wypełnienie. Inaczej mówiąc dokładnie określać w jakim punkcie okresu pobieram próbkę.
Jak by ktoś mógł potwierdzić czy da się w ten sposób sterować PWM...?