154 14. Licznik T2 w 8052 i SAB 80515/535
Operację dynamicznego odczytu wartości chwilowej licznika często określa się mianem odczytu ’w locie' (on-the-fly). Sytuacje tę przedstawiono na rysunku 14-7.
Zapamiętanie wartości chwilowej licznika T2 realizowane jest w:
• trybie 0, w którym moment zapamiętania wartości chwilowej wyznaczony jest sygnałem zewnętrznym, przykład działania licznika w tym trybie przedstawiony jest poniżej,
• trybie 1, w którym wpis dowolnej wartości do mnie) znaczącego rejestru: CRCL .. CCL3 wyznacza moment zapamiętania wartości chwilowej; tryb ten omówiony jest w [2].
Wybór właściwego trybu wykonywany jest przez zmianę zawartości rejestru CCEN. Aktywne zbocza sygnałów INT3 .. INT6 powodują wpisanie wartości chwilowej licznika T2 do odpowiadającego sygnałowi rejestru CRC..CC3 oraz wpisania jedynki na pozycję znacznika przerwania 1EX3.. IEX6.
Rys. 14-7 Pomiar współczynnika wypełnienia sygnału impulsowego.
Jeśli system przerwań jest odblokowany i zgłaszane przerwanie jest przyj' mowane, to po zawieszenie wykonywanego programu następuje skok do adresu odpowiadającego temu przerwaniu. Ze względu na sposób sterowania zewnętrznymi sygnałami zboczem aktywnym sygnału jest:
• zbocze narastające dla wejść przerwań INT4..INT6 skojarzonych z rejestrami CC1..CC3,
• zbocze narastające (13FR-1) lub opadające (I3FR=0) dla wejścia INT3 skojarzonego z rejestrem CRC; wybór rodzaju aktywnego zbocza dokonywany jest w rejestrze T2CON.6,
• ze względu na pojedyncze źródło przerwań, rozpoczęcie obsługi przerwania: INT3 .. INT6 kasuje sprzętowo znacznik, który wywołał przerwanie (IEX3.. IEX6).
Do bufora wyjściowego portu PI musi być wpisana wartość jedynki logicznej. W przeciwnym przypadku nie można określić momentu pojawienia się aktywnego zbocza sygnału (linia w stanie zera logicznego). Sygnały na wejściach 1NT3 .. INT6 testowane są przez mikrokontroler w każdym cyklu maszynowym. Wartość chwilowa licznika T2 jest dostępna w rejestrach CRC..CC3 w następnym cyklu maszynowym w stosunku do cyklu, w którym zostało wykryte aktywne zbocze sygnału.
W poniżej przedstawionym przykładzie programu licznik T2 użyto do pomiar czasu trwania impulsu. Pomiar wykonywany jest z dokładnością 1 ps. Z czterech, dostępnych do zapamiętywania wartości chwilowej licznika T2 rejestrów: CRC, CCI, CC2 i CC3 jedynie do rejestru CRC można przepisać stan licznika T2 zboczem opadającym sygnału dołączonym do wejścia P1.0/CC0. Do pozostałych 3 rejestrów CCx stan licznika T2 przepisywany jest zboczem narastającym.
Pomiar współczynnika wypełnienia x jest następujący (rysunek 14-7):
• należy wwbrać tryb 0 wpisywania wartości chwilowej licznika T2,
• wartość chw'ilowra licznika T2 będzie wpisywana zboczem:
-> narastającym do rejestru CCI,
-> opadającym do rejestru CRC,
• należy wyzerować rejestr przerwań 1RCON, w którym znajduje się znacznik IEX3 sygnalizujący opadające zbocze sygnału wpisującego stan licznika T2 do rejestru CRC,
• uruchomić licznik T2 taktowany sygnałem wewmętrznym,
• po wykryciu zbocza opadającego zatrzymać licznik T2 i zablokować w'pis kolejnych wartości chwilowych licznika T2 do rejestrów CRC i CCI,
• czas i trwania jedynki logicznej mierzonego sygnału nie powoduje przepełnienia licznika T2.
Przykładowy program realizujący podane założenia jest następujący: