www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

perioda PWM

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vesko
Neznanec
Neznanec



Pridružen-a: Pet 23 Mar 2012 22:10
Prispevkov: 1
Aktiv.: 0.01

PrispevekObjavljeno: Ned Mar 25, 2012 1:31 am    Naslov sporočila:  perioda PWM Odgovori s citatom

Pozdravljeni

Delam diplomo in sem naletel na težavo, zato bi vas prosil za pomoč.

Izdelujem aplikacijo segrevanja organskih topil in želim vključevati grelec oz. regulirati temp. z PWM. Problem se pojavi pri nastavitvi periode PWM namreč ne morem je nastaviti na 1 ali 2 s.
Uporabljam DSpic30F4011 in SSR (Solid State Relay) SHARP S202S20.

Izračuni so naslednji: quarz=10 Mhz PLL=8

Fosc=10^6 * 8 = 80 Mhz
Fcy=Fosc / 4= 20 Mhz

PTPER- period register
Fpwm= 1 Hz

PTPER= (Fcy / Fpwm*(PTMR_prescaler))-1

PTPER=312499

postavljeni registri:

PTCONbits.PTEN = 1; enable bit
PTCONbits.PTCKPS = 0b11 prescale value 64
PWMCON1 = 0xF01 RE0 pin pwm out ostali so GPIO
PWMCON2 = 0x0000;
PTPER= 312499;
PTMR = 0x0000; start timer

Dolžina periode kljub po moje pravilnim nastavitvam in izračunom in preizkušanjem ne preseže 100 ms oziroma 10 Hz kar je absolutno prekratko. Frekvenca PWM bi morala biti vsaj 1 Hz oz 0.5 Hz. Preizkusil sem tudi s spreminjanjem prescalerja in post scalerja ampak ne zaleže.

Hvaležen bom za vsako pomoč

Hvala in lepo se imejte

P.S če sem karkoli pozabil dopisati mi sporočite, lahko dodam tudi program in izračune, ki sem jih sedaj simbolično zapisal.

_________________
LP marko
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
gregoral
Član
Član



Pridružen-a: Pet 24 Nov 2006 9:42
Prispevkov: 688
Aktiv.: 3.04
Kraj: Ljubljana

PrispevekObjavljeno: Ned Mar 25, 2012 2:51 am    Naslov sporočila:   Odgovori s citatom

DSpic30F4011 sicer ne poznam, zato ne vem ali je možno sam PWM modul nastaviti kot želiš.

Ampak ker je perioda (1s) kar se tiče uC zeeeeeeelo dolga imaš seveda možnost da:
- na kratek interval (interrupt) povečuješ sistemski čas (10 ms recimo)
- iz main funkcije nato kličeš "MyPWM" funkcijo
- MyPWM funkcijo implementiraš tako da si v statično spremenljivko zapomni kdaj mora zamenjat stanje pina

Recimo nekaj v tem stilu:
Koda:
static int next_pwm_time = 0;

void MyPWM()
{
   int t = sys_time;

   // return if PWM is turned off or too soon to switch
   if(0 < next_pwm_time && t < next_pwm_time) return;

   // if(pinz is on)
   if(portx & pinz)
   {
      // switch pinz off
      portx &= ~pinz;

      // set next switch time
      next_pwm_time = t + off_time;
   } else
   {
      // switch pinz on
      portx |= pinz;

      // set next switch time
      next_pwm_time = t + on_time;
   }
}


pomembno je da si v funkciji MyPWM na začetku zapomniš sys_time (ta mora bit deklariran kot volatile)
to pa zato da čas izvajanja MyPWM ne podaljšuje pwm periode
no sicer ker je perioda v tvojem primeru dolga 1s, potem je verjetno vseeno in lahko povsod uporabiš kar sys_time, ki se med izvajanjem MyPWM lahko spremeni
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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: 494 dni


Powered by phpBB © 2001, 2005 phpBB Group