Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino - tutorijali, pitanja, primjeri i projekti
#24
@mikikg,

zanima me kako promjeniti PWM frekvenciju na Attiny MCU, točnije Attiny84.

Htio bih ju podić na 32500 ili više Hz za potrebe step-down pretvarača.

Našao sam PWM.h library za arduino koji funkcionira na Atmega328P, sa njom se vrlo jednostavno može promjeniti frekvencija i može se namjestiti da se Timer0 zadužen za delay() i ostale funkcije di je tajming bitan ne dira.

Kako se to ručno može podesiti ?

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Proučavao sam malo datasheet i ja bi pin PB2 koristio kao PWM izlaz, i ako sam dobro shvatio u TCCR0A registru treba postaviti bitove ovako: 01000001 <- to je phase correct PWM na OCA0, OCAB isključen, WGM01 bit podešen na 0, a WG00 bit podešen na 1.

TCCR0B bi trebalo podesiti na 00001010 <- WGM02 bit podešen na 1, Phase correct PWM, a prescaler podešen na 8 sa 010.

Znači sa ovim postavkama bi trebao dobiti ovo:
TCCR0A 01000001 <- (COM0A1 = 0; COM0A0 = 1; COM0B0 = 0; COM0B1 = 0; 0; 0; WGM01 = 0; WGM00 = 1Wink //COM0A1 i COM0A0 ovako podešeni postavljaju OCA0 u Compare Match mod.
TCCR0B 00001001 <- (FOC0A = 0; FOC0B = 0; 0; 0; WGM02 = 1; CS02 = 0; CS01 = 0; CS00 = 1Wink // Ovime se prescaler postavlja na 1 što mi uz clock frekvenciju od 16 MHz daje PWM frekvenciju od 31372,54 Hz

Na pinu PB2 (OCA0) -> Phase correct PWM (WGM02 = 1; WGM01 = 0; WGM00 = 1Wink Mode 5 u tablici na stranici i frekvenciju od oko 31.4 kHz

Molio bih da neko stručniji kaže koju riječ, da li je ovo dobro.

E sad još jedno važno pitanje, koji tajmer bi na Attiny84 utjecao na funkcije delay() i ostale ?
Reply


Messages In This Thread
RE: Arduino - tutorijali, pitanja, primjeri i projekti - by gigabyte091 - 12-25-2014, 11:31 AM

Forum Jump:


Users browsing this thread: 28 Guest(s)