11. Timer_A modul.

11.1.

A Timer_A modul összetett, sokoldalúan használható áramkör. Fő részei a következők:

  1. Időzítő áramkör, amely képes
  2. Folytonosan egy előre rögzített értékig előre számlálni, majd újra nulláról elöre számlálni,

    folytonosan előre számlálni 0000h és FFFFh között,

    nullától egy előre rögzített értékig előre számlálni, majd visszaszámlálni.

    A számláló leállítható.

  3. Az órajel kiválasztó áramkör, programozható bemeneti órajellel.
  4. A kiválasztott órajel kettővel, néggyel illetve nyolccal osztására osztó áramkör.
  5. öt darab capture/compare regiszter, független capture bemenetekkel. Két capture jel hardver vagy szoftver úton állítható be.
  6. öt output modul, melyek PWM jelek előállítását teszik lehetővé.

Az áramkör a TACTL vezérlő regiszterrel programozható. Felépítése a 11.1 ábrán látható.

 

11.1. ábra: Timer_A felépítése.

Időzítő üzemmód

Az időzítő üzemmódban a számláló négyféle módon működhet, amelyet aTACTL vezérlő regiszter MC1 és MC0 bitjei és a 0. sorszámú komparátor EQU jele együtt határoznak meg. Az órajel kiválasztása a TACTL regiszter SSEL1 és SSEL0 bitjeivel lehetséges. A kiválasztott órajel 2,4, és 8-al osztható az ID1 és ID0 bitek értékétől függően.

Számlálási mód

A számlálás módját az MC1 és MC0 bitekkel állíthatjuk be. Hatásuk az alábbi lesz:

MC1 MC0 mód

0 0 stop

0 1 előre mód, a számláló előre számlál a CCR0 regiszter értékéig

1 0 folyamatos mód

1 1 irányváltó mód

Stop módban a számláló áll. Ha a stop mód megszűnik, a számláló az aktuális értékétől kezdve számol. Aszámlálási irány és az összes többi regiszter a stop előtti állapotban marad.

Előre módban a számláló a CCR0 regiszter tartalmának eléréséig számol. Ha a tartalma elérte CCR0 értékét, resetelődik, és 0-tól kezdve számol. A CCIFG0 flag bit bebillen, amint a számláló értéke egyenlő lesz a CCR0 regiszter tartalmával. A TAIFG flag bit pedig akkor billen be, amikor a számláló a CCR0 értékről 0-ra változik.

11.1/a ábra: előre számlálás mód.

Folyamatos módban a számláló 0h értéktől FFFFh értékig számol, majd 0h-ra vált és folytatja a számlálást FFFFh-ig. Az FFFFh-0h váltáskor a TAIFG flag bit bebillen.

Irányváltó számlálás esetén a számláló a CCR0 tartalma eléréséig előre számol, majd irányt vált és visszaszámol 0-ig.

11.1/b ábra: Irányváltó számlálás.

A számlálási irányt egy flip-flop tárolja, amely átbillen, amint a számláló eléri a CCR0 értéket. A TAIFG és a CCIFG0 flag-ek a számlálás folyamán egyaránt bebillennek.

 

Capture/compare mód

A capture/compare módok ( kiolvasás/összehasonlítás) rugalmas real-time feldolgozásokat tesznek lehetővé. A blokk regiszterek mindegyike használható a számláló tartalmának rögzítésére a megadott esemény bekövetkezésekor, vagy időintervallumok előállítására. Valahányszor az esemény bekövetkezik, vagy egy időintervallum letelik, megszakítás jön létre. A capture/compare blokk felépítése a 11.5. ábrán látható.

11.5. ábra: Capture/compare blokk.

A CCTLxvezérlő regiszter CAPx üzemmód bitje összehasonlító(CAPx=0), vagy rögzítő (CAPx=1) működési módot írhat elő. A CCMx1 és CCMx0 rögzítési mód bitek kijelölik a rögzítés létrejöttének a feltételeit. Ez lehet tiltva, pozitív élre, negatív élre, vagy mindkét élre. Mindkét mód kezeli a megszakítás flag CCIFG és megszakítás engedélyező CCIE biteket. Biteket. A CCIFG flag bebillen, a capture esemény bekövetkezésekor, vagy összehasonlításkor.

A capture üzemmódú működés idődiagramja a 11.5/a ábrán látható.

 

11.5/a ábra: capture üzemmód idődiagramja.

A CCRx regiszterek szavas utasításokkal érhetők el. Mindig a legutolsó beléjük másolt időzítő értéket tartalmazzák. Túlcsordulás logika jelzi, ha a tárolt értéket kiolvasták, mielőtt újabb capture esemény bekövetkezne. Ha olvasás nem történt, és újabb érték rögzítése történik, a CCTLx regiszter COVx túlcsordulás bitje bebillen.

Szoftver példa a rögzített érték kezelésére, a túlcsordulás figyelésével:

CCRx_Int_hand ;Megszakítás kezelő program kezdete

……..

……..

……..

MOV &CCRx,RAM_Buffer ; CCRx regiszter mentése

; RAM területre

BIT #COV,&CCTLx ; túlcsordulás bit tesztelése

JNZ Overflow_Hand ; ha 1, ugrás a túlcsordulás

; kezelő rutinra

……..

……..

……..

RETI

Overflow_Hand

BIC #COV,&CCTLx ; túlcsordulás bit törlése

…….. ; hibakezelő rész

……..

……..

RETI

Kompare üzemmód

A Compare (összehasonkítás) üzemmódot a CAPx bir törlésével lehet beállítani. Ha a számláló tartalma egyenlővé válik a CCRx regiszter tartalmával, a következő folyamat játszódik le:

a CCTLx regiszter CCIFGx flag bitje bebillen,

Ha a globális megszakítás engedélyezés GIE bit 1 és a megszakítás engedélyezés CCIEx bit is 1, megszakítás keletkezik,

Az EQUx jel az Oux egységre kerül, és az OUTx jel a megfelelő jelszintet vesz fel.

11.6. ábra: output egység.

Az EQU0 jel igaz értékű, ha a számláló értéke nagyobb, vagy egyenlő, mint a CCR0 regiszter értéke. Az EQU1-EQU4-jelek esetén a megfelelő CCR’-CCR! regiszterek tartalmával történik

a számláló összehasonlítása. A 11.6/a ábrán a számláló irányváltó módban számol, CCR0=3-ig. Az OUT jel bebillen, amint a számláló a CCR1 értékrt meghaladja, és visszabillen, amint annál kisebb.

11.6/a ábra: Az output egység kimenő jele.

A Timer_a megszakítás vektor regisztere

Két megszakítás vektor tartozik az áramkörhöz.

Egy vektor a CCR0 regiszterhez, amelynek prioritása a Timer_a megszakításai közül a legmagasabb.

Egy vektor a fennmaradó CCRx regiszterekhez. A 16 bites TAIV az aktuális megszakítás kérelmet tartalmazza.

A CCR0 regiszter egyedi megszakítás flag bitje látható a 11.10. ábrán. Az IRQ a megszakítás kérelem, az IRACC pedig a megszakítás nyugtázás jel. CCIE0 a megszakítás engedélyező bit.

11.10. ábra: Capture/Compare megszakítás flag.

A fennmaradó CCR1-CCR4 regiszterek, valamint és időzítő (TAIFG flag regisztere) megszakítás áramkörét a 11.11 ábrán mutatjuk be.

.

11.11. ábra: a Capture/compare áramkör megszakítás vektora.

A kézikönyv az időzítő számos alkalmazását mutatja be, köztük a soros kommunikáció megvalósítását, amelyekre helyszűke miatt nem térünk ki.