Wpis z mikrobloga

@karololo: okres całego przebiegu (około 1ms - będziesz musiał mierzyć) dzielisz na 4119 kawałków.
Pierwsza część to stan wysoki trwający 16 tiknięć (kawałków). druga część to cztery tiknięcia statusu. czyli jeśli nie ma błędu to też stan wysoki, jeśli jest tam stan niski - oznacza to błąd. teraz masz sekcję 4095 tiknięć reprezentujących wsp. wypełnienia zaczynający się od stanu wysokiego i po pewnym czasie przechodzący w niskie co daje określony wsp
@karololo: Nie mogę edytować więc tu dopiszę:

jak zmierzysz czas trwania stanu wysokiego i okres sygnału to wartość PWM będzie wynosić:

PWM=((th*4119/okres)-16)/4095

th - to czas trwania stanu wysokiego a okres to okres całego sygnału PWM
zakładając oczywiście, że nie ma błędu sprzętowego (czyli 4 takty error_n są w stanie wysokim)

W pierwszym poście się pomyliłem - powinno być 12 taktów stanu wysokiego i następnie 4 takty statusu.
@karololo: Jeszcze raz to przeanalizowałem i tak. -16 jest dobre - bo mierzysz czas stanu wysokiego a on jest wydłużony o 16 cykli. Okres natomiast jest wydłużony o 24 cykle stąd liczba 4119=4095+24. jeśli mierzyłbyś czas stanu niskiego to wtedy miałbyś tam - 8 no i PWM oczywiście trzeba by wtedy odejmować od 1 - zależy co dla Ciebie wygodniej mierzyć (ale przy stm32 można sobie sprzętowo wybrać co mierzymy, więc