90 (145)

90 (145)



Mikroprocesorowa Ośla łączka

R14 R13    R12    R11    R10



testowej elementów R20, R13, T5 oraz R19, R14, T6 - patrz rysunek 108. Gdy jumpery J1, J2 będą zwierać punkty A, B, naruszenie linii LI, L2 spowoduje wyłączenie normalnie otwartych tranzystorów T5, T6, co można też wykorzystać do sygnalizacji stanu linii na wyświetlaczu W2. Jumpery zwierające punkty B, C wyłączą tranzystory T5, T6. Układ będzie też pracował bez jumperów J1, J2 — wtedy przy konfiguracji wejścia trzeba obowiązkowo wpisać jedynki do komórek PortD.5

i PortD.6, co zapewni „lekkie”, ale wystarczające podciągnięcie wejść i obniży pobór prądu. Gdybyś chciał praktycznie wykorzystać taki układ, powinieneś na wejściach linii dodać obwody ochronne, zabezpieczające przed uszkodzeniem wejść. Ściślej biorąc, w prawdziwej centralce należałoby wprowadzić więcej zmian, ale naszym celem jest nauka programowania, więc pominiemy te zagadnienia. W każdym razie działanie ma być następujące: rozwarcie przełącznika S2 (stan

egzemplarzami. Nie znaczy to, że częstotliwość bez powodu będzie „rozjeżdżać się” w tak szerokich granicach, niemniej generalnie stabilność oscylatora jest słaba. Oznacza to, że nie ma mowy o precyzyjnym odmierzaniu czasu za pomocą watch-doga. Na szczęście z reguły nie jest to potrzebne - w praktycznych zastosowaniach wystarczy „precyzja” rzędu ±50%. Przy zasilaniu napięciem 5V częstotliwość oscylatora wynosi typowo nieco powyżej IM Hz i występuje dość prosta zależność między pojemnością licznika a czasem trwania cyklu zliczania. Dlatego też twórca BA-SCOM-a, Mark Alberts, słusznie uprościł sprawę, i podczas pisania programu konfigurując watchdog podajemy przybliżony czas pełnego cyklu licznika, wyrażony w milisekundach:

CONFIG WATCHDOG = czas gdzie czas to jedna z ośmiu liczb: 16,32, 64 , 128,256,512 , 1024, 2048. Oznacza to, że czas cyklu watchdoga może wynosić od około 16ms do około 2 sekund. Oczywiście są to wartości przybliżone, z dokładnością ±20%, a może nawet jeszcze gorszą. Podkreślam to, żebyś czasem nie wpadł na „genialny” pomysł i nie próbował wykorzystywać watchdoga do precyzyjnego odmierzania czasu.

Po konfiguracji, na początek działania programu trzeba jeszcze włączyć watchdoga poleceniem Start Watchdog

Podczas prawidłowej pracy programu wykorzystującego watchdog w klasycznym trybie, licznik jest okresowo zerowany przez program i nie nastąpi reset procesora. Reset procesora nastąpi tylko wtedy, jeśli program przestanie pracować poprawnie i gdy przez zadany czas program nie wyzeruje licznika watchdoga. Aby okresowo zerować licznik watchdoga, obowiązkowo trzeba w programie umieścić polecenie

E L E M


B

Nazwa

Bit7

Brt6

Bit5

r Bit4

Bi»3

Blt2

Bit1

BitO

Jllj

SREG

1

T

H

S

V

N

Z

c

SPL

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

GIMSK

INT1

INT0

GR

■NfTFI

BHTFO

umsK

lOEfl

OOE1A

tioei

TOEO

IW

TOW1

OCF1A

ICF1

TOVD

ihcucr

SE

SU

ISC11

RSCIO

tscoi

ISCOO

TCCM

CSQ2

CSOI

CSOO

lont




polecenie Start WATCHDOG. Dodatkowy bit WDTOE (Watchdog

Tiirn-off Enable) dodano, żeby wykluczyć możliwość przypadkowego wyłączenia watchdoga przy nieprawidłowej pracy programu. Mianowicie watchdog nie da się wyłączyć przy próbie zwyczajnego wyzerowania bitu WDE. Aby wyzerować bit WDE trzeba najpierw ustawić (!) bit WDTOE, a właściwie wpisać stan wysoki jednocześnie do bitów WDTOE i WDE (mimo że wcześniej WDE=1), a dopiero potem w czasie krótszym niż cztery takty zegara wyzerować WDE. Przy programowaniu w asemblerze wymaga to przynajmniej dwóch rozkazów. Użytkownicy BASCOM-a nie muszą nawet o tym wiedzieć, bo do zablokowania watchdoga wykorzystają polecenie Stop WATCHDOG, które zawiera potrzebną procedurę - zostanie

Elektronika dla Wszystkich Grudzień 2003 33


Wyszukiwarka

Podobne podstrony:
43680 Image37 (6) Mikroprocesorowa Ośla łączka Ml 191 ZmiennaTypuInteger = Funkcyjka (JakasZaiByte,
89 (141) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 programowe zerowanie liczni
91 (142) Mikroprocesorowa Ośla łączka Ml Reset Watchdog I to sq wszystkie kluczowe informacje, umożl
92 (141) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka If Flaga * 1 Then gdy llaga usta
93 (135) Mikroprocesorowa Ośla łączka segmentów a tych dwóch wyświetlaczy. Podczas odmierzania czasu
95 (133) Mikroprocesorowa Ośla łączka 95 wu na działanie poprzedniej wersji centralki? Po przeprowad
96 (126) Mikroprocesorowa Ośla łączka Config Portb = Output : Portb = 127 portB - wyjcecie; PB.7 =
97 (117) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 Ćwiczenie 23Wyświetlacz
98 (115) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka •C023a Wyświetlacz LCD Cla Do Cl
99 (115) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 ’C023e Wszystkie typy zmi
Image33 (6) Mikroprocesorowa Ośla łączka Ml 187 SHIFTOUT Pdane , Pzegar Zmienna ,
edw6 str39 Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączkaĆwiczenie 17 Oszczędny zegar -
edw6 str40 Mikroprocesorowa Ośla łączka Ml zostanie wykonana tylko raz). Natomiast przy reakcji na
edw6 str45 Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka ■CQ17a prosty
edw6 str46 Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 riii«uixe

więcej podobnych podstron