Witam, napisałem potrzebny mi do pracy inżynierskiej sterowanie wentylatora od PC poprzez PWM - narazie to tylko prototyp programu. PWM sprzętowy na timerze0, LCD zwykły 2x16 HD44780. Na LCD wyświetlam narazie jedynie zawartość rejestru ADCH, potencjometrem podpiętym pod kanał 0 ADC zmieniam wartość rejestru OCR0 tak aby zmieniać współczynnik wypełnienia. Problem jest dziwny, ponieważ połączone te trzy rzeczy nie działają dobrze ze sobą...im większa częstotliwość PWMa tym bardziej psuje się wszystko - tzn: jeśli dam np PWM o częstotliwości 62,5kHz czyli bez preskalera, ADC w trybie free running i do tego LCD to LCD zaczyna bardzo migać, znikają co chwilę znaki na nim wyświetlane, do tego przestaje działać regulacja z potencjometru od zakresu mniej więcej ADCH = 150...dalej przetwornik przestaje reagować na cokolwiek. Jeśli zniżę częstotliwość PWM wszystko "wraca" do normy, czyli zaczyna ze sobą działać. Całkowicie nie rozumiem tego zachowania. Czym to jest spowodowane ? kwarc 16MHz, poniżej kod:
Kod: C / C++
