AVR in PWM

Moderator: tilz0R

AVR in PWM

OdgovorNapisal/-a klemen88 » 21 Jan 2017, 11:55

Pozdravljeni,

prišel sem do težave. Pri PWM s duty cycle pod 100 % imam na izhodu komaj 495 Hz frekvenco signala (pri 100 % je <15 kHz). Uporabljam interni 8 MHz oscilator. Prescaller imam nastavljen na 8 (TCCR0B |= (1 << CS01);).

PWM mi drugače lepo deluje, ampak problem imam zaradi premajhne frekvence in mi motor veselo piska :(

Hvala za pomoč.
Nimate dovoljenj za ogled prilog tega prispevka.
klemen88
 
Prispevkov: 206
Pridružen: 04 Feb 2015, 13:21
Kraj: Slovenj Gradec
Zahvalil se je: 39 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 1

Re: AVR in PWM

OdgovorNapisal/-a mucek » 21 Jan 2017, 12:09

Čakaj, pa saj frekvenca PWMja se ti nima kaj spreminjati s tem, če spreminjaš DC ...?!?!
Ok, če rabiš višjo, malo preračunaj vrednosti timerjev (lahko tudi prescaler spremeniš na 1), ampak mislim, da imaš ti težavo drugje. Kateri timer pa uporabljaš? 8 ali 16-bitnega? Pa da nimaš kak ClockDivision vklopljen v fuse bitih?

LP, g
... lahko pa se tudi motim ...
Uporabniški avatar
mucek
 
Prispevkov: 3169
Pridružen: 18 Jan 2015, 21:20
Kraj: Ljubljana
Zahvalil se je: 113 krat
Prejel zahvalo: 1347 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 255

Re: AVR in PWM

OdgovorNapisal/-a seba » 21 Jan 2017, 13:16

Bitbang! Tako sem jaz rešil :p
Uporabniški avatar
seba
 
Prispevkov: 644
Pridružen: 17 Jan 2015, 22:20
Zahvalil se je: 65 krat
Prejel zahvalo: 204 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 23

Re: AVR in PWM

OdgovorNapisal/-a klemen88 » 21 Jan 2017, 13:49

mucek je napisal/-a:Čakaj, pa saj frekvenca PWMja se ti nima kaj spreminjati s tem, če spreminjaš DC ...?!?!
Ok, če rabiš višjo, malo preračunaj vrednosti timerjev (lahko tudi prescaler spremeniš na 1), ampak mislim, da imaš ti težavo drugje. Kateri timer pa uporabljaš? 8 ali 16-bitnega? Pa da nimaš kak ClockDivision vklopljen v fuse bitih?

LP, g


Pozdravljen,

Med spreminjanjem DC se mi frekvenca ne spreminja. Samo ko dam DC na 100 % mi osciloskop pokaže frekvenco <15 kHz.
Uporabljam 8 bitni timer. Prescaler sem spremenil na 1 in je zadeva boljša (4 kHz). Med spreminjanjem DC se mi frekvenca ne spreminja.
Za PWM uporabljam samo te nastavitve. Ali je potrebno nastaviti še kaj drugega?

Koda: Izberi vse
// PWM //

   DDRD |= (1 << PIND6);
        // configured output pin

   TCCR0A |= (1 << COM0A1);
   // set none-inverting mode

   TCCR0A |= (1 << WGM01) | (1 << WGM00);
   // set fast PWM Mode

   TCCR0B |= (1 << CS00);
   // set prescaler to 0 and starts PWM //
   
// PWM //


Hvala
Nimate dovoljenj za ogled prilog tega prispevka.
klemen88
 
Prispevkov: 206
Pridružen: 04 Feb 2015, 13:21
Kraj: Slovenj Gradec
Zahvalil se je: 39 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 1

Re: AVR in PWM

OdgovorNapisal/-a tilz0R » 21 Jan 2017, 14:44

Da ti osciloskop to pokaže, da je pod 15kHz je popolnoma smiselno, saj pri 100% je samo enosmerna vrednost, in to pomeni da ni frekvence.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 2403
Pridružen: 18 Jan 2015, 00:12
Kraj: Črnomelj
Zahvalil se je: 264 krat
Prejel zahvalo: 767 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: AVR in PWM

OdgovorNapisal/-a klemen88 » 23 Jan 2017, 19:45

Pozdravljeni,

nič ni bilo narobe z registri in kodo. Dodal sem samo zunanji oscilator 12 MHz in je frekvenca nekaj čez 40 kHz in motor se že veselo vrti.

Hvala za pomoč!
Nimate dovoljenj za ogled prilog tega prispevka.
klemen88
 
Prispevkov: 206
Pridružen: 04 Feb 2015, 13:21
Kraj: Slovenj Gradec
Zahvalil se je: 39 krat
Prejel zahvalo: 12 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 1


Vrni se na C in sorodni jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost