Jak zauważyłeś, zmienne całkowite 8 bitowe z trudnością

dzielą się na wartości ułamkowe. Tutaj trzeba wykonać funkcję całkowitego dzielenia, z zaokrągleniem (w górę lub dół, do wyboru, tutaj chyba lepiej w górę). Jeśli z kolei chciałbyś regulować wartość %, trzeba ją przemnożyć przez 2,55, czyli w praktyce przy inkrementacji o 1 raz dodać 3 a raz 2, pilnując, by zmienna PWMa nie uległa przepełnieniu. Nie znam składni bascoma, jakkolwiek uniwersalna formuła powinna mieć postać:
Kod: Zaznacz cały
PWM = zmienna_8bit[część_całkowita(wartość_% * 2.55)]
lub
Kod: Zaznacz cały
PWM = zmienna_8bitczęść_całkowita(wartość_% * 255 / 100)]
Nie wiem, jaki masz procek, ale najprawdopodobniej istnieje możliwość ograniczenia rozdzielczości PWMa (poprzez odpowiedni rejestr) tak, aby wartości 0..100 (licznik PWM modulo-101) odpowiadały wprost wartości współczynnika wypełnienia w %. Wówczas nie będzie potrzeba niczego przeliczać, a częstotliwość nośna PWMa będzie prawie całkowitą o 100x mniejszą niż taktowanie timera generującego PWM
chciałeś zrobić wzmacniacz, a wyszedł jak zwykle ... mieszacz :/
"Eksperci nie mają monopolu na dobre rady" - Bob Pease
nie jestem żadnym specjalistą