 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
joc Član


Pridružen-a: Pet 22 Dec 2006 14:19 Prispevkov: 371 Aktiv.: 1.65 Kraj: Novo mesto
|
Objavljeno: Pet Dec 22, 2006 2:38 pm Naslov sporočila: PWM program v BASCOM AVR |
|
|
Pozdrav!
Zanima me kako bi napisal program v Bascom AVR za PWM modulacijo?
Problem oz. naloga je sledeča:
Na vhodu enega pina (AT90S8515) štejemo impulze in izhodna napetost mora naraščati po korakih. Prebral sem že, da se na izhod PWM veže RC filter.
Teoretično mi je več ali manj jasno, programersko pa še ne - začetnik.
Uporabljal bi kar notranjo uro 4MHz.
Kakšen izsek programa s komentarji bi mi prav prišel.
Hvala.  _________________ Človek, tako pomembno bitje, ki ga lahko naredi vsak bedak. |
|
Nazaj na vrh |
|
 |
Sokrat Član


Pridružen-a: Čet 25 Avg 2005 11:00 Prispevkov: 5584 Aktiv.: 23.57
|
Objavljeno: Pet Dec 22, 2006 5:54 pm Naslov sporočila: |
|
|
Ce iams dovolj I/O pinov, potem namesto PWM s filtrom naredi D/A z R-2R lestvico. Vpisi "R-2R ladder" v Google za vec informacij. Ko stejes impulze, potem samo prepises vsakic vrednost stevca na izhodni port, kjer je D/A konverter, ta pa poskrbi da izhodna napetost rase v enakomernih korakih. Velikost D/A konverterja je odvisna od tega koliko korakov bi rad prestel (maksimum). _________________ Ka ti bo pa torba ce si kupu kolo ? |
|
Nazaj na vrh |
|
 |
joc Član


Pridružen-a: Pet 22 Dec 2006 14:19 Prispevkov: 371 Aktiv.: 1.65 Kraj: Novo mesto
|
Objavljeno: Sob Dec 23, 2006 12:57 am Naslov sporočila: |
|
|
8-bitno varianto sem že poskusil naredit kot si dejal in stvar deluje brez problema. Vendar bi vse eno rad to sprobal še s PWM modulacijo, da vidim kako se PWM programsko reši.
Zato bi rad videl kakšen kos programa s komentarji (nastavitve DAC,...). _________________ Človek, tako pomembno bitje, ki ga lahko naredi vsak bedak. |
|
Nazaj na vrh |
|
 |
cfrik Član


Pridružen-a: Sre 24 Jan 2007 16:15 Prispevkov: 39 Aktiv.: 0.17 Kraj: Trbovlje
|
Objavljeno: Sob Jan 27, 2007 12:10 am Naslov sporočila: |
|
|
Poglej PDF za tvoj čip. Za attiny 2313 vpišeš v register timer določeno kombinacijo bitov. Za osem bitni PWM pri attiny2313 je ukaz takle
Tccr0a = &B10100001 ' timero kot 8 bit hitri pwm
Tccr0b = &B00010001
prevajalno razmerje pa določiš z vpisom kode med 0 in 255 v naslednje registre za dva neodvisna PWM kanala, če pa rabiš samo en kanal pa uporabiš samo en OCR register. Pin na katerem se PWM signal pojavi mora biti kot izhod in je na pinoutu označen z Ocr0a ali Ocr0b:
Ocr0a = Hitl
Ocr0b = Hitd
Tak način krmiljenja ne obremenjuje procesorja, ostal del programa teče nemoteno. Če pa rabiš Timer 0 za kaj drugega pa lahko na podoben način uporabiš Timer1.
Frekvenco PWM pa preračunaš po enačbi
F=(takt kristal/prescaler)/255
LP _________________ lepo je imeti poklic in hobi na istem področju vendar je časa premalo |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|