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 

PIC 16F628: HW PWM funkcija

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja PIC-a v Assembler-ju
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Čet Jul 22, 2010 11:57 am    Naslov sporočila:  PIC 16F628: HW PWM funkcija Odgovori s citatom

Konfigurirat HW PWM funkcijo mi je nekako uspelo oz. sem si pomagal s spodnjim delom kode v assemblerju:

Koda:

TRISB.3 = 0                     ' RB.3=PWM output
PR2 = 25                        ' Set PWM for approximately 38KHz
CCPR1L = 13                     ' Set PWM Duty-Cycle to 50%
CCP1CON = %00001100             ' Mode select = PWM
T2CON = %00000100               ' Timer2 ON + 1:1 prescale



Sedaj me zanima, kako naj PWM periodo ponovim recimo 5x.

Primer: perioda pri 38 kHZ je 26,3 us. Če to želim ponovit 5x bi to pomenilo 131 us.

Mi lahko kdo pomaga, da napiše del kode, ki ponovi PWM periodo po zgornjem primeru?


Nazadnje urejal/a Legada Čet Jul 22, 2010 4:31 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.25
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jul 22, 2010 12:07 pm    Naslov sporočila:   Odgovori s citatom

Ko nastaviš PWM le ta dela v nedogled. Če želiš zamo 5 period, ga moraš po 5 periodah izključiti.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Čet Jul 22, 2010 12:10 pm    Naslov sporočila:   Odgovori s citatom

Ok... Kako pa naj po točno 5 periodah izklopim HW PWM... Kakšen primer kode?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter123
Član
Član



Pridružen-a: Tor 13 Jan 2009 15:34
Prispevkov: 1366
Aktiv.: 7.35
Kraj: Lj.

PrispevekObjavljeno: Čet Jul 22, 2010 12:15 pm    Naslov sporočila:   Odgovori s citatom

Ko pošlješ ukaz za PWM in ta začne delat nastaviš in štartaš interupt števec.

Ko se ta števec "odšteje" oziroma pravilno se njegova vrednost obrne se izvede interupt zanka, ki PWM ugasne)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.25
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jul 22, 2010 12:17 pm    Naslov sporočila:   Odgovori s citatom

Kje si ti sploh dobil ta procesor. Še mikročip ga nima na seznamu.

Bi pogledal v DS če lahko dobiš kakšen interupt ampak ne morem.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Čet Jul 22, 2010 12:29 pm    Naslov sporočila:   Odgovori s citatom

Napaka v naslovu teme, se opravičujem... Uporabljen je PIC16F628A

link:
http://www.microchip.com/wwwproducts/devices.aspx?ddocname=en010210
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.25
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jul 22, 2010 12:38 pm    Naslov sporočila:   Odgovori s citatom

Ne vem. Pomoje boš moral čakati in ročno izklopiti. Morda se postavi zastavica TRM2 timerja, nisem pa prepričan... preveri.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Čet Jul 22, 2010 4:31 pm    Naslov sporočila:   Odgovori s citatom

A ve mogoče, če v assemblerju prime ukaz "HPWM 1, 150, 400"
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek4
Član
Član



Pridružen-a: Sob 18 Jun 2005 20:52
Prispevkov: 2952
Aktiv.: 13.25
Kraj: Tržič - Mesto med gorami

PrispevekObjavljeno: Čet Jul 22, 2010 6:14 pm    Naslov sporočila:   Odgovori s citatom

Tega ukaza PIC ne pozna. Na DSju ki si ga pripel imaš spisek vseh ukazov.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Pet Jul 23, 2010 10:37 am    Naslov sporočila:   Odgovori s citatom

Je mogoče to pravi način, da pridem do štetja interuptov posameznih period HW PWM?

Koda:

PWM_Period_Match
    BTFSS PIR1, TMR2IF
    GOTO PWM_Period_Match
    BCF PIR1, TMR2IF
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bungee
Član
Član



Pridružen-a: Pon 07 Mar 2005 18:49
Prispevkov: 1479
Aktiv.: 6.64
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jul 23, 2010 8:36 pm    Naslov sporočila:   Odgovori s citatom

Ne vem zakaj hočeš s PWM modulom realizirat 5 pulzov pri 38kHz. To se da naredit z enostavnim stavkom, ki se ponovi 5x.

Evo pseudo koda:
Koda:

   Ponovitve=5
Zanka:  Postavi_pin_na_1
   Počakaj_13us
   Postavi_pin_na_0
   Počakaj_13us (Prilagodi zaradi naslednjih operacij)
   ponovitve=ponovitve-1
   če_so ponovitve>0 skoči na Zanka
   
   Nadaljevanje kode

   

Tole je delovalo na UZ oddajnikih, da pa dobiš čimboljšo izhodno frekvenco pa je treba pametno izbrat tudi kristal.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
Legada
Član
Član



Pridružen-a: Čet 18 Sep 2008 12:04
Prispevkov: 39
Aktiv.: 0.21
Kraj: Obala

PrispevekObjavljeno: Pet Jul 30, 2010 9:14 am    Naslov sporočila:   Odgovori s citatom

"bungee", HW PWM želim uporabiti, ker je baje program v PIC-u že zabasan in moram pošiljati IR sporočilo z 10 byte-i, kar bi PIC program zelo upočasnilo...

zato sem v posvetu z ostalimi prišel do tega, da bi izkoristil lastnost PIC 16F628, to je HW PWM.
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 -> Osnove programiranja PIC-a v Assembler-ju Č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: 69 dni


Powered by phpBB © 2001, 2005 phpBB Group