Dzięki. Jeszcze pytanko. Ile maksymalnie wynosi częstotliwośc nośna PWM i od czego zalezy?
Hmmmm. Maksymalnie to będzie
fosc/4 (ze skróconym licznikiem do 2, prescalerem = 1, tryb FastPWM). Ale PWM będzie miał rozdzielczość... jednego bitu.
Zależy ona od trzech rzeczy: częstotliwości taktowania licznika - czyli w domyśle taktowania procesora; jego rodzielczości - można ją zmieniać od 1 do 16 bitów dla licznika Timer1; oraz trybu pracy - Fast lub Normal.
Jasam pisze:Da się zrobić by była ona wyższa (np w zakresie trochę ponad pasmem słyszalnym)? Jak zmodyfikowac ten program by ta częstotliwośc była wyższa?
Jesteś pewien, że procesor pracuje z częstotliwościa 8MHz jaką zakładasz? Jeśli nie zmieniałeś fuse-bitów to pracuje on z
fosc = 1000000Hz. Tego nie zauważysz bo opóźnienia LCD są dość krótkie i jak się wydłużą osiem razy to i tak LCD będzie działał.
Zmniejsz też rozdzielczość PWM do 8bitów - a nie jak masz wpisane 10bitów.
Jasam pisze:Może przyda się konfiguracja Timera1 jako fastPWM. Ale w helpie polskim do bascoma nic na ten temat nie widzę i nie wiem jak to dobrze skonfigurować.
Trzeba zmienić stan paru bitów w
TCCR1A i
TCCR1B. Zajrzyj do dokumentacji bo możliwych opcji jest 5 (Ostatnia tabelka przy opisie rejestru
TCCR1A). Już chyba wiesz jak szukać...
Jasam pisze:Ale w helpie polskim do bascoma nic na ten temat nie widzę i nie wiem jak to dobrze skonfigurować.
Nie ma, gdyż BASCOM domyslnie używa
Phase Correct PWM. Po co miałem opisywać coś czego nie można skonfigurować z odpowiedniego polecenia CONFIG TIMER? Ponadto jak powstał opis i składnia języka to FastPWM nie było jeszcze dostępne.
Jasam pisze:Więc dla timer1 w takim razie jak to wygląda?
Niestety prawie tak samo. Symulacja działania PWM jest niemożliwa, gdyż licznik startuje i to można zobaczyć, ale nie zmienia on kierunku liczenia co normalnie ma miejsce. Dlatego takie rzeczy symuluję w AVR Studio.
Jasam pisze:Proszę o pomoc bo datasheet jest akurat jeśli o to chodzi bardzo mętny.
Datasheety ATMEL-a dość wyczerpująco opisują wszystkie bity i tryby pracy licznika TIMER1 po koleii. Zatem nie wiem skąd taki osąd.