Cześć wszystkim,
Wykonuję moduł sterowania mocą urządzenia zasilanego z 230V metodą zmiany kąta fazy.
Kod programu działa tak, że po przerwaniu z detektora zera, uruchamiam timer0, który w przerwaniach zlicza wartośc czy zrównała się z zadanym parametrem.
Jeśli osiągnie parametr załączenia, to generuję impuls 10us na wyjście bramki triaka.
Chcę sterować mocą w zakresie 0-255, dla 0 impuls sterujący triaka pojawia się przed samym zerem więc triak włączy się na ok 15us,
natomiast przy 255 triak załączy się zaraz za zerem.
Mam problem z idealnym dostosowaniem skali typu char(0-255) do podziału połówki sinusoidy (10ms) na 255 odcinków czasowych.
Pierwotnie ustawiłem Timer0 bez preskalera, F_CPU = 16MHz, ale błąd wynikający z niedostosowania częstotliwości pozwala mi na przesuwanie impulsu max do 75% czasu połówki sinusa.
Jak prawidłowo podejść do kalkulacji ustawień timera 8 bitowego dla założeń, że chce sterować to w taki sposób, że dzielę 10ms na 255 odcinków?
------------
Poprawiłem opis na bardziej klarowny
