Vissza a főoldalra    Vissza a PIC főoldalra

<< Előző oldal   Vissza a tartalomjegyzékhez   Következő oldal >>

 


16.2. Capture üzemmód


      A Capture (kiolvasási) működés során a 16-bites Timer 1 számláló értéke kerül kiolvasásra a mikrovezérlő egyik kivezetésén fellépő külső esemény hatására. A kiolvasott 16-bites érték a CCPRxL és CCPRxH regiszterekbe kerül, és megszakításkérés indul.
      A Capture üzemmód lehetővé teszi a külső eseményekre való gyors reagálást az esemény pontos időpontjának ismeretével, illetve két külső esemény közötti időtartam pontos mérését.
      A Capture működést indító külső esemény a következők közül választható:
     ˇ minden lefutó él;
     ˇ minden felfutó él;
     ˇ minden 4. felfutó él;
     ˇ minden 16. felfutó él.

      A Capture üzemmód indítójelének kiválasztása a CCP modul CCPxCON vezérlő regiszter alsó négy bitjének beállításával lehetséges:

16.2-1. Táblázat
Érték Működés
0000     CCP modul kikapcsolva
0100     Capture működés minden lefutó élre
0101     Capture működés minden felfutó élre
0110     Capture működés minden 4. felfutó élre
0111     Capture működés minden 16. felfutó élre

      A Capture működés blokkvázlata:

A Capture működés blokkvázlata
16.2-1. Ábra

Vissza a lap tetejére

      A CCPxCON regiszterben elhelyezett CCPxM2 és CCPxM3 vezérlő bitekkel engedélyezhető, illetve indítható a Capture üzemmód. A CCPxM0 és CCPxM1 bitek választják ki az indító eseményt, vagyis a mikrovezérlő CCPx kivezetésére érkező jel osztási arányát és az aktiváló fel- vagy lefutó élt is.
      Az indító esemény hatására a Timer 1 számláló regisztereinek (TMR1L, TMR1H) "pillanatnyi" értéke átíródik a CCP modul CCPRxL és CCPRxH regiszterpárjába, valamint megszakításkérés indul a PIRx regiszter CCPxIF bitjének logikai "1"-re állításával.
      Ha a CCP modul megszakításkérése a PIEx regiszter CCPxIE engedélyező bitjével, az INTCON regiszter PEIE periféria-megszakítás engedélyező bitjével és a GIE globális megszakítás-engedélyező bitjével is engedélyezve van, megindul a megszakítás végrehajtás. A megszakításkezelő programrész feladata, hogy a CCPxIF jelzőbitet nullázza és a kiolvasott értéket elmentse, feldolgozza. (Ha még a kiolvasott érték elmentése előtt fellép egy újabb indító esemény, a CCPRxL és CCPRxH regiszterek felülíródnak és az előző érték elveszik.)
      A kiolvasás a Q1..Q4 belső jelek segítségével szinkronizálva, vagyis az indító eseményhez képest bizonyos ideig (maximum 1 utasításciklus) késleltetve van, hogy a Timer 1 számláló regisztereinek értékváltása ne hamisíthassa meg a kiolvasott értéket.

      A Timer 1 CCP modulhoz történő alkalmazásához, annak időzítő vagy szinkron számláló üzemmódban kell működnie. (Aszinkron számláló üzemmódban a Compare üzemmód tiltva van, mivel a Timer 1 szinkronizálatlan külső léptetése ütközhet a kiolvasás időpontjával, ami hibás tárolt értéket eredményez.)
      A kiolvasási esemény nincs hatással a Timer 1 működésére (nincs nullázás vagy tiltás), ezért a Timer 1 időközben más feladatot is elláthat. Két kiolvasási esemény közötti időtartam megállapításához nincs szükséga Timer 1 nulázására.
      Az időmérés a Timer 1 16-bites ciklusán felül is lehetséges a Timer 1 túlcsordulás megszakítás engedélyezésével és kezelésével.

      Capture üzemmódban a mikrovezérlő CCPx kivezetését a megfelelő TRISx regiszterben bemenetnek kell konfigurálni. (Kimenetként konfigurált kivezetés esetén a kimenet írása indítási eseményt okozhat.)

      Az előosztó alkalmazására, vagyis a kiolvasási esemény leosztására bizonyos időtartamig állandó frekvenciájú bemenő jelek periódusidő (frekvencia) mérésénél lehet szükség. Az előosztó alkalmazásával növelhető a mérés pontossága.
      Az elérhető pontosság:

16.2-2. Táblázat
Előosztás Maximális hiba 1% pontossággal
mérhető frekvencia

(fOSC = 20 MHz)
5% pontossággal
mérhető frekvencia

(fOSC = 20 MHz)
Utasításciklus Idő
(fOSC = 20 MHz)
1:1 1 200 ns 50 kHz 250 kHz
1:4 1/4 50 ns 200 kHz 1 MHz
1:16 1/16 12,5 ns 800 kHz 4 MHz

      Az előosztó számlálólánca törlődik:
     ˇ a Capture üzemmód szoftveres kikapcsolásakor;
     ˇ bármilyen Reset-működés hatására.
      A Capture üzemmód aktív állapotában történő osztási arány váltás indító jelet okozhat, ezért az átváltást mindig a Capture üzemmód kikapcsolt helyzetében kell elvégezni.

Vissza a lap tetejére

      A következő táblázat a CCPx mikrovezérlő bemenetre vezetett külső léptető jel időjellemzőinek határértékeit adja meg.

16.2-3. Táblázat
Megnevezés Minimális hossz
Utasításciklus: Tut = 4 · Toszc
Előosztás: N = 4 vagy 16
Magas szint Előosztás nélkül 0,5·Tut + 20 [ns]
Előosztással 10 [ns]
(LF - 20 [ns])
Alacsony szint Előosztás nélkül 0,5·Tut + 20 [ns]
Előosztással 10 [ns]
(LF - 20 [ns])
Periódusidő Előosztás nélkül (3 · Tut) + 40 [ns])
Előosztással [(3 · Tut) + 40] / N [ns]

      Az LF jelölésű adatok a kiterjesztett feszültségtartományú mikrovezérlő típusokra vonatkoznak.

      Készenléti (SLEEP) állapotban a Timer 1 nem működik (mivel szinkron üzemmódban van), de a Capture működés előosztója folytatja a számlálást (szinkronizálás nélkül). A kiolvasási esemény hatására a CCPxIF jelzőbit "1"-re vált, de a Timer 1 értéke nem kerül mentésre. Ha a CCP modul megszakítása engedélyezve van, a mikrovezérlő kilép a (SLEEP) állapotból (megtörténik az ébresztés).

      Bármely Reset-esemény hatására a CCP modul kikapcsolt helyzetbe áll be.

      A Capture üzemmód külső megszakításkérés kezelésére is felhasználható. A mikrovezérlő CCPx bemenetén megjelenő megszakításkérés (kiolvasás indító esemény) hatására a CCPxIF megszakításkérő bit "1"-re vált, így megszakításkérés indul.

      A kiolvasást indító esemény bekövetkezéséről, illetve a kiolvasásról a szoftver két különböző úton értesülhet:
     ˇ a CCP modul megszakítás alkalmazásával, megszakításkezeléssel;
     ˇ a CCPIF megszakításkérő jelzőbit szoftverből történő folyamatos figyelésével (ami könnyen megoldható, ha a mikrovezérlőnek közben nincs más feladata).

      A Capture üzemmód működtetéséhez el kell végezni:
     ˇ a CCPx kivezetés iránybeállítását (bemenet);
     ˇ a Timer 1 léptetésének beállítását (léptető jel kiválasztása, előosztás beállítása, szinkronizálás bekapcsolása, indítás);
     ˇ a CCP modul megszakításbeállítását;
     ˇ a mérés megkezdéséhez a CCP modul bekapcsolását (a Capture üzemmód és az indító esemény kiválasztását);
     ˇ a kiolvasás megtörténte után a CCPRxL és CCPRxH regiszterek mentését.

      A Capture üzemmód programozását bemutató fejezetek:

Válaszidő mérése
Kiolvasási sorozat kezelése
Két esemény között eltelt idő mérése
A mérési intervallum kibővítése

 

  Tudomány és Technika (test@t-es-t.hu)


 

<< Előző oldal   Vissza a tartalomjegyzékhez   Vissza a lap tetejére   Következő oldal >>

Vissza a főoldalra    Vissza a PIC főoldalra