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 

Računanje zakasnitve

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
klemen
Član
Član



Pridružen-a: Sre 01 Okt 2003 16:18
Prispevkov: 28
Aktiv.: 0.13
Kraj: Sežana

PrispevekObjavljeno: Ned Feb 22, 2004 12:58 pm    Naslov sporočila:  Računanje zakasnitve Odgovori s citatom

Pozdravljeni zanima me kako naj preračunam oziroma sestavim program, ki bo v picu povzročil zakasnitev (delay).

Primer: Rad bi da je na pinu gp0 frekvenca 10Hz. Izračunam čas po formuli f=1/t in dobim, da je zakasnitev 0,1s. Program za realizacijo naj bi izgledal nekako takole:

bsf GP0
call delay
bcf GP0
call delay


Zanima me ali moja teorija drzi in kako nanj napisem kodo za zakasnitev (delay)?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Feb 22, 2004 1:12 pm    Naslov sporočila:   Odgovori s citatom

klemen,

Seveda je izvedljivo tako kot si napisal. Napisano se mora zaključit v zanki. Stvar bo sicer funkcionirala, če s picem ne boš delal nič drugega. V koliko boš delal še kaj drugega boš moral dolžino te kode upoštevat v rutini pavze. Bolj elegantno je uporabiti prekinitveno rutino z uporabo TMR0 prekinitve.
Snami si priponi s posta PIC - generator kode

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
klemen
Član
Član



Pridružen-a: Sre 01 Okt 2003 16:18
Prispevkov: 28
Aktiv.: 0.13
Kraj: Sežana

PrispevekObjavljeno: Ned Feb 29, 2004 5:41 pm    Naslov sporočila:   Odgovori s citatom

Hm, kako pa bi to naredil z TMR0 zakasnitvijo, ali lahko malo razložiš? Ker te stvari ne poznam, sem bolj začetnik.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14557
Aktiv.: 65.26
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Feb 29, 2004 5:59 pm    Naslov sporočila:   Odgovori s citatom

Na kratko:
Ob inicializaciji narediš sledeče

- v OPTION_REG nastaviš preddelilnik za TMR0 (PSA)
- ter določiš clock za TMR0 (T0CS)
- tam tudi nastaviš vrednost preddelilnika (PS2:PS0)
- v INTCON registru vključiš TMR0 prekinitev (T0IE)

-seveda moraš napisati prekinitveno rutino. Ob prekinitvi se v PC naloži vrednost 0x04 torej "kazalček" skoči na to lokacijo.
tam pač napišeš
Koda:

org 0x04
    goto PREKINITEV  ;skok na prekinitveno rutino



sedaj se bo prekinitev izvajala točno po enakih intervalih kakršen je pač preddelilnik- V sami prekinitvi šteješ število prekinitev ter glede na to dobiš točen čas. Lahko delaš tudi korekcijo TMR0 zaradi lažjega izračuna (tako, da se TMR0 prekinitev izvaja točno ob "okrogli" številki.

_________________
lp
Silvo
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 -> Microchip PIC Č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: 78 dni


Powered by phpBB © 2001, 2005 phpBB Group