Witam szanownych forumowiczów.
Wykonywany przeze mnie projekt to prosty sterownik lampek LED RGBW. Lampki sterowane są poprzez 4 kanały PWM, których współczynnik wypełnienia regulowany jest potencjometrami podłączonymi do 4 wejść ADC mikrokontrolera. Wyjścia PWM ustawione są w trybie fast PWM o częstotliwości 490Hz. No i poprawnie wykonana operacja powodowałaby, że jeden kanał adc steruje jednym kanałem pwm, ale tak nie jest. Kręcąc potencjometrem odpowiedzialnego za dany kanał PWM wygląda, że wszystko działa, ale potem kręcę innym(też jednym konkretnym) potencjometrem no i on też wpływa na ten kanał. Co prawda nie w takim stopniu jak ten przypisany, ale współczynnik wypełnienia zmienia sie nawet do 10 %. efekt tego jest taki, że jak ustawie jeden kanał PWM i potem kolejny to ten pierwszy zmieni swoją wartość. Nie wiem co robię nie tak, czy program nie taki jest napisany, czy może już zdążyłem uszkodzić uC? Może ktoś już się zetknął z takim problemem?. Poniżej kod może tam jest cos źle?
Wykonywany przeze mnie projekt to prosty sterownik lampek LED RGBW. Lampki sterowane są poprzez 4 kanały PWM, których współczynnik wypełnienia regulowany jest potencjometrami podłączonymi do 4 wejść ADC mikrokontrolera. Wyjścia PWM ustawione są w trybie fast PWM o częstotliwości 490Hz. No i poprawnie wykonana operacja powodowałaby, że jeden kanał adc steruje jednym kanałem pwm, ale tak nie jest. Kręcąc potencjometrem odpowiedzialnego za dany kanał PWM wygląda, że wszystko działa, ale potem kręcę innym(też jednym konkretnym) potencjometrem no i on też wpływa na ten kanał. Co prawda nie w takim stopniu jak ten przypisany, ale współczynnik wypełnienia zmienia sie nawet do 10 %. efekt tego jest taki, że jak ustawie jeden kanał PWM i potem kolejny to ten pierwszy zmieni swoją wartość. Nie wiem co robię nie tak, czy program nie taki jest napisany, czy może już zdążyłem uszkodzić uC? Może ktoś już się zetknął z takim problemem?. Poniżej kod może tam jest cos źle?
Kod: C / C++
