PWM duty cycle problema

N

nadre25

Guest
Sveiki, turiu problema, kurdama signalo natūra PIC16F877A [url = http://images.elektroda.net/79_1308044622.jpg]
79_1308044622_thumb.jpg
[/url] mano kodas tik gavau signalo iki vertikalios linijos. čia mano kodas: o (1) {pwmplus = 10; už (LVL = 0; lvl
 
Pirmoje dalyje, Jūs padidinti PWM iki 10, nei 20, nei 30 .... su kiekvienu iteracijos. Tačiau antroji dalis Jūs atimti 80 straipsnio pirmajame iteracijos, 70 antroje, 60 trečioje ir tt ... Išbandykite kažką panašaus į antrąją dalį:
Code:
 pwmplus = 10 / / pradėti nuo 10, (LVL = 0; lvl
 
Ne labai aišku, jei norimas galingumas signalo yra sinusoidės trikampis. + + +
 
ačiū už atsakymus @ bjuric: Aš jau padaryta, nei bet vis tiek ji man davė klaidų naudojant modeliavimo proteus. Ar yra kitas būdas sukurti tokias bangos forma? @ Andre_teprom: norimas galingumas yra pwm muito ciklą, kad didėja iki tam tikro taško tada grįžo į originalus veikos ciklas. Aš jau padaryta didinant dalį, Turiu problemų mažėja. I've tried izoliacijos funkcijas (didėja, ar mažėja). Kai aš paleisti su didėjančiu darbo programa be mažėja dalis, ji veikia, taip pat su mažėjančia dalis be didinant dalis. bet kai aš bandžiau paleisti jį kartu, programa sugenda.
 
... bet kai aš bandžiau paleisti jį kartu, programa sugenda ...
Ar turite omenyje Klaida, arba kompiliavimo klaida? + + +
 
Klaida. kompiliacija yra sėkmingas, tačiau naudojant treniruoklį PROTEUS, ji sako, kad klaida yra per CALL kamino.
 
Pwm1_Change_Duty (unsign_pwm-pwmplus)
Aš visada rašė surinkimo taigi aš ne tikrai nežinojau, ką "unsign_pwm" yra. Manau, tai yra konstanta. Tokiu atveju virš linijos turėtų būti: Pwm1_Change_Duty (unsign_pwm + pwmplus); turiu galvoje išlaikyti ženklas +.
 
@ KerimF: im sorry I neišleido visą kodą. unsign_pwm yra kintami produkcijos ADC. Ar galite man papasakoti, kaip aš galiu grįžti prie pradinio muito cycly jei jiems bus nuolat + ženklas? Ačiū.
 
nope. ji liks ta pati. leidžia tiesiog pasakyti, kad unsign_pwm = 150;
 
ok ... todėl mums reikia tik leisti kintamasis pwmplus ... padidinti vėliau sumažės ... ir nieko daugiau. Pavyzdžiui, ar jūs pakeisite - ir + kaip aš siūliau ir tu negali gauti rezultatą? Manau, jūs jau žinote, kad jūsų Ciklas 9 kartus, o ne 8 ... tiesa? Pridėta: Ar galiu paklausti, kaip sumos "unsign_pwm + pwmplus" yra susijusi su muito ciklą? Aš turiu galvoje, su kintama nustato PWM laikotarpis (intervalas, jei norite) Turi būti sąžiningas, jūsų numeris 150 kaip minimalią ribą, ir 150 80 = 230, negali duoti bendros formos savo vaizdą 1. Paštu signalą.
 
Ar jūsų PWM 8bit, kurių vertės 0-255? Kodėl jūs naudojate padidės 10 ir kodėl sumažėja iki 80 ir tada 70 .. 60 .. ir tt iš 150 vertė taps 160.170.180.190.200.210.220.230 ir tada 230-80, 150-70, 80-60 .. Ar tai, ką jūs norite daryti? [Sintaksė = c] pwmplus = 80; už (LVL = 0; lvl
 

Welcome to EDABoard.com

Sponsor

Back
Top