Transcript 5. Hafta

KESMELER
(Interrupts)
5.Hafta
Mikrodenetleyiciler
1
Kesmeler
Kesme, mikrodenetleyicinin gerçekleştirdiği işleme bakmaksızın belirli
durumların veya olayların oluşması halinde isteklere/olaylara cevap
verilmesini sağlayan mekanizmadır. Oluşan her kesme olayı ile programın
normal işlenme süreci değiştirilerek program durdurulur ve kesme alt
programı işletildikten sonra ana programın işlenmesi kalınan noktadan
devam eder. Kesme kaynakları;
Kesme Kaydedici Blok Diyagramları
Kesme İsteği/Olayı Lojik Devresi
Mikrodenetleyiciler
4
RB0/INT KESME OLAYI
RB0/INT girişinden harici olarak kesme
oluşturulur.
Bu girişe uygulanan interrupt sinyalinin
hangi kenarda olacağı OPTION 6. biti ile
belirlenir.
INTCON 7.biti GIE ile kesmelerine izin verilir.
INTCON 4. biti INTE ile kesmeye izin verilir.
INTCON 1. biti INTF bitinin 1 olması kesme
oluştuğunu 0 olursa harici kesme
oluşmadığının bildirir.
OPTION
INTCON
Örnek: RB0 girişine bağlı buton ile harici kesme;Başlangıçta ON durumunda olan RB7
ye bağlı LED, RB0 dan kaynaklanan kesme olayında LED OFF konumuna alınmakta
yeni bir kesme ile yeniden ON konumuna alınması istenmektedir.
list
p=pic16f877a
#include<p16f877a.inc>
__CONFIG
_HS_OSC & _WDT_OFF
org
0x000
goto basla
org
0x004
goto kesme
basla:
bsf
STATUS, RP0
; Bank 1' gecis
movlw0x01
movwf
TRISB
; PortB I/O atama
bcf OPTION_REG, INTEDG
bsf OPTION_REG, NOT_RBPU ; Pull-up disable
bcf
STATUS, RP0
; Bank 0'a gecis
clrf PORTB
; Portu temizle
bsf PORTB, 7
; RB7 çıkış lojik1
bsf INTCON, INTE
; RB/INT enable
bsf INTCON, GIE
; Global Interrupt Enable
git:
goto git
; sonsuz dongu
kesme:
; Interrupt altprogrami
bcf INTCON, INTF ; bayragi temizle
btfss PORTB, 7
; RB7 lojik1 mi
goto alt_prg
bcf PORTB, 7
; RB7 lojik0 ata
retfie
alt_prg:
bsf PORTB,7
retfie
end
; RB7 lojik1 ata
PORTB Değişim Kesme Olayı
PORTB nin 4,5,6,7 pinlerinden en az birinde durum değişikliği
olması durumunda RB Port değişimi kesme olayı meydana gelir.
INTCON 7.biti GIE ile kesmelerine izin verilir.
INTCON 3. biti RBIE biti ile kesmeye izin verilir.
INTCON 0. biti RBIF kesme bayrağı biti PORTB nin 4,5,6,7
pinlerindeki değişikliği bildirir.
INTCON
Örnek: PORTB nin 4,5,6,7 pinlerindeki butonlardan herhangi birisine basılması ile
kesme alt programı çalışarak kesme olayı hangi pinin de olduğunu PORTB nin 0,1,2,3
pinlerindeki LED lerde görülmesi.
list
p=pic16f877a
#include<p16f877a.inc>
__CONFIG 0x3F31
;__CONFIG b'11111100110001'
org
0x000
goto basla
org
0x004
goto ISR
basla:
bsf
STATUS, RP0 ; Bank 1' gecis
movlw
0xF0
movwf
TRISB
; PortB I/O atama
bsf
OPTION_REG, NOT_RBPU ; Pull-up disable
bcf
STATUS, RP0
; Bank 0'a gecis
movlw
0xFF
movwf
PORTB
;PortB lojik1
bsf
INTCON, RBIE ; PORTB degisim kesme
enable
bsf
INTCON, GIE ; Global Kesme Enable
dongu:
goto dongu
;sonsuz dongu
ISR:
;kesme programi
bcf
INTCON, RBIF ; kesme bayragi sil
btfss
PORTB, 7
; RB7 test et
goto
LED0
btfss
PORTB, 6
; RB6 test et
goto
LED1
btfss
PORTB, 5
; RB5 test et
goto
LED2
btfss
PORTB, 4
; RB4 test et
goto
LED3
retfie
LED0:
bcf
PORTB,0
retfie
LED1:
bcf
PORTB,1
retfie
LED2:
bcf
PORTB,2
retfie
LED3:
bcf
PORTB,3
retfie
end
Çalışma Sorusu:
1. RB0 pinine bağlı olan bir tuşa her basıldığında kesme
üreten ve PD4-PD7 pinlerine bağlı olan 4 adet led ile
0-9 arasında binary sayan program kodlarını yazın.
TIMER0 Modülü
Timer0 modül, timer/sayaç aşağıdaki özelliklere
sahiptir.
• 8 bitlik timer/sayaç ,
• Okunabilir ve yazılabilir ,
• 8 bitlik programlanabilir prescaler.,
• İçten veya dıştan saat ayarı ,
• FFh` tan 00h`ye taşma üzeri kesme ,
• Dış saatin kenar seçimi ,
Timer modu; TOCS biti (OPTION<5>) biti lojik 0 atandığında TMR0
kaydedicinin içeriği dahili osilatör frekansı ile artar. Eğer temizlenmesiyle
seçilir. Timer modunda Timer0 modülü her bir komut sürecini
uzatır. Eğer, Sayaç modu kullanılması için TOCS biti (OPTION<5>) lojik 1
olarak atanır ve RA4 girişinden dışarıdan gelen değişim ile TMR0
kaydedici içeriği artar. Bu modda, artım için yükselen ve düşen kenar
tetiklemesi TOSE (OPTION<4>) tarafından belirlenmektedir. TOSE bitinin
temizlenmesi ile yükselen sınırları seçecektir.
OPTION_REG
•Bit 5 TOCS: TMR0 saat kaynağını seçme biti
•0 = Dahili komut çevrim clocku kullanılır (CLKOUT)
•1 = RA4/TOCK1 pininden (uçundan) gelen darbeler clock kaynağı olur
•Bit 4 TOSE: TMR0 kaynak kenarı seçme biti (Eğer TOCS = 1 ise)
•0 = RA4/TOCK1 pininden gelen her yükselen kenar için bir artırılır
•1 = RA4/TOCK1 pininden gelen her düşen kenar için bir artırılır.
TMR0 Frekans Önbölücü(PreScaler) Ayarları
OPTION_REG
Bit 3 PSA: Önbölücü / önölçekleme yapılacak birimi seçme biti
0 = Önbölücü TMR0 modülü için ayrılır
1 = Önbölücü WDT için ayrılır.
Bit 2,1,0; PS2, PS1, PS0: Önbölücü oranı seçme bitleri
Mikrodenetleyiciler
12
TMR0 Sayıcısının Başlangıç Değerinin Atanması
TMR0 sayıcısı h’00’ değeri yerine istenilen bir sayıdan başlatılabilir.
Kesme Gecikme Süresi= = Tkomut zamanı*Prescaler değeri*(256-TMR0 başlangıç sayısı)
Formülü ile istenilen geçikme süresi hesaplanabilir. Formülde TMR0 başlangıç sayısı ve
Prescaler değeri ondalık olarak alınmalıdır.
TMR0 ile elde edilebilen en büyük kesme gecikme süresi ;
PD: ‘111’ seçilerek Fosc=4MHz ise Tkomut zamanı=1/(fosc/4)=1µs bulunur.
Kesme Gecikme Süresi= Tkomut zamanı*Prescaler değeri*(256-TMR0 başlangıç sayısı)
= 1µs*256*(256-0)
= 65536µs = 65,5 ms olur.
1 ms zaman gecikmesi için:
Kesme Gecikme Süresi= Tkomut zamanı*Prescaler değeri*(256-TMR0 başlangıç sayısı)
= 1µs*8*(256-131)
= 1000µs = 1 ms olur.
TMR0 Kesmesi
TMR0 kesmesi, TMR0 kaydedicisinin değeri FFh`dan 00h`ye
geçtiğinde üretilmektedir. Bu TMR0 taşması sonucunda TOIF
bayrağı (INTCON<2>) lojik1 olur. Kesme istenmiyorsa, TOIE bitinin
(INTCON<5>) temizlenmesi ile gizlenebilir. Yeni kesme alınabilmesi
için (INTCON<5>) TOIF bayrağı, yazılımdan silinmelidir.
TMR0 blok diyagramı
Örnek Hesaplama İşlemleri
OPTION yazmacının PS0:PS2 bitleri ‘000’ seçildiğinde TMR0 sayma aralığı ve kesme
gecikme sürelerinin bulunması:
PD değerleri ’000’ seçildiğinde TMR0 oranı ½ olmasıyla frekans 2’ye bölünmesi
zamanın 2 ile çarpılması olduğunda (1/(1/2)=2) komut zamanının 2 katı sürede
TMR0 değerini bir arttıracaktır.
Fosc=4MHz ise Tkomut zamanı=1/(fosc/4)=1µs
TMR0 sayma aralığı zamanı= Tkomut zamanı*TMR0 oranı= 1µs*2= 2µs
Kesme Gecikmesi= TMR0 sayma aralığı zamanı*256= 512µs
Örnek: TMR0 zamanlayıcısı kullanılarak 1 sn zaman gecikmesi elde edilmesi
uygulaması. PortB.0 a bağlı LED i 1sn aralıkla yakıp söndüren program.
list
p=pic16f877a
#include<p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF &
_PWRTE_ON & _XT_OSC & _BODEN_OFF
& _LVP_OFF & _CPD_OFF
SAYICI_250 equ
0x20
SAYICI_4 equ
0x21
org
0x000
goto basla
org
0x004
goto ISR
basla:
clrf
PORTB
bsf
STATUS, 5
clrf
TRISB
movlw 0x02 ;b'00000010
movwf OPTION_REG
bcf
STATUS, 5
bsf
INTCON,7
bsf
INTCON,5
dongu:
goto dongu
ISR:
bcf
INTCON,2
movlw 0x83
movwf TMR0
bcf
STATUS,Z
incf
SAYICI_250,f
movlw d'250'
subwf SAYICI_250,w
btfss STATUS,Z
retfie
bcf
STATUS,Z
incf
SAYICI_4,f
movlw d'4'
subwf SAYICI_4,w
btfss STATUS,Z
retfie
clrf
SAYICI_250
clrf
SAYICI_4
btfss PORTB,0
goto YAK
goto SONDUR
YAK:
bsf
PORTB,0
retfie
SONDUR:
bcf
PORTB,0
retfie
end
TIMER1 Modülü
Timer1 modül, zamanlayıcı/sayıcı olmak üzere
2 farklı modda çalıştırılabilir.
• 16 bitlik zamanlayıcı/sayıcı,
• Okunabilir ve yazılabilir 2 adet 8-bit
yazmaca sahip (TMR1H ve TMR1L),
• 8 bitlik programlanabilir prescaler,
• İçten ve dıştan saat seçimi,
• FFFFh değerinden 0000h değerine geçilirken
kesme oluşur,
• CCP modülünden resetleme,
TIMER1 Blok diyagramı
Timer1’in aktif/pasif, ayarlama/sıfırlama işlemleri gösterilmektedir.
TIMER1 ZAMANLAYICI MOD
TIMER1 SAYICI MOD
Zamanlayıcı 1 (TIMER1) İşlemleri
Timer1 aşağıdaki modlardan birini işletebilir.
• Zamanlayıcı olarak
• Senkronize sayacı olarak
• Asenkronize sayacı olarak
TMR1CS (T1CON<1>) biti bu modlardan hangisinin
çalıştırılacağına karar verir. Zamanlayıcı
modunda
Timer1 her komut çevrimi artışları, sayaç modunda her
harici saat girişi yükselmesini belirler. Timer1 osilatör
aktifken RC1/T10SI ve RC0/T10S0/T1CKI pinleri giriş olurlar.
TRISC<1:0> değeri ihmal edilir.
T1CON: TIMER1 Kontrol Kaydedicisi
TIMER1’deki işlemlerin kontrol edildiği ve i şlemler yürütülürken bazı bilgilerin
alındığı kaydedicidir.
TMR1ON: Timer1’ e yetki veren bittir. TMR1ON biti 1 yapıldığında Timer1
kullanılır durumdadır, 0 ise kullanım dışıdır.
TMR1CS:Timer 1 için clock kaynağının seçildiği bittir. TMR1CS 1 ise clock
kaynağı olarak RC0/T1OSO/T1CKI pininden gelen sinyalin yükselen kenarları
seçilir. TMR1CS’nin 0 olması halinde ise dahili clock kaynağı kullanılır.
T1SYNC:Harici clock kaynağını n senkron kontrolünü yapan bittir. Eğer harici
kaynak ile Timer1 e ş zamanlı çalışmıyorsa T1SYNC 1 seviyesinde olur. Eğer
eş zamanlı bir çalışma var ise T1SYNC 0 seviyesindedir.
T1OSCEN: Timer1 osilatör kaynağı yetkilendirme bitidir. T1OSCEN 1 ise
osilatör kaynağı etkindir, 0 ise kullanım dışıdır.
4-5 T1CKPS0,T1CKPS1 :Timer1 giriş sinyalinin bölme
(prescaler)
oranının seçildiği bitlerdir. Bu bitlerin aldığı değerlere
göre bölme prescaler değeri değişmekte ve buna
bağlı olarak Timer1 artma frekans ı değişmektedir.
11 = 1:8 Prescaler değeri
10 = 1:4 Prescaler değeri
01 = 1:2 Prescaler değeri
00 = 1:1 Prescaler değeri
TMR1 zamanlayıcısını kullanarak 1/2 sn (500 ms) zaman gecikmesi elde edilmesi
uygulaması
LIST P=16F877A
INCLUDE "P16F877A.INC"
__CONFIG h'3F31' ;__CONFIG _CP_OFF & _WDT_OFF &
_PWRTE_ON
& _XT_OSC & _BODEN_OFF & _LVP_OFF & _CPD_OFF
; veya __CONFIG b'11111100110001'
;****Program belleginin yapisi***
ORG
h'000'
GOTO BASLA
ORG
h'004'
GOTO KESME_ALTPROG
BASLA
CLRF PORTB
;PORTB'nin içerigini temizleyerek LED'leri
söndürür
BSF
STATUS, 5 ;BANK1'e geç
CLRF TRISB
;PORTB'nin uçlarini çikis yap
BSF
PIE1,0 ;TMR1IE (PIE1<0>) (TMR1 interrupt enable bit)
BCF
BSF
BSF
BCF
STATUS, 5 ;BANK0'a geç
INTCON,7 ;Tüm kesmelere izin ver (GIE=1)
INTCON,6 ;PEIE=1 Çevresel kesmelere izin verildi
T1CON,1 ; TMR1CS : Timer1 Clock Source Select bit = 0
;(Internal clock Fosc/4)
T1CON,0 ;Timer1 çalistir (1= Enables Timer1,0=Stops
BSF
Timer1)
BSF
T1CON,5 ; T1CON 5.ve 4. bitleri '11' yapilinca frekans
BSF
T1CON,4 ; bölme orani 1/8 olmaktadir.
BCF STATUS, 5 ;BANK0'a geç
LOOP
GOTO
LOOP
KESME_ALTPROG
olusur.
BCF
MOVLW
PIR1,0
h'0B'
MOVWF
MOVLW
YÜKLE
MOVWF
BTFSS
GOTO
GOTO
TMR1H
h'DC'
TMR1L
PORTB,0
YAK
SONDUR
; 500 ms sure dolunca kesme olayi
;TMR1IF TASMA BAYRAGINI SIL
;h'OBDC' SAYISINI TMR1H VE TMR1L
YAZMAÇLARINA YÜKLE
;h'OBDC' SAYISINI TMR1H VE TMR1L
; RB0'i TEST ET (1 MI?)
; HAYIR, RB0=ON RB1=OFF
; EVET, RB0=OFF RB1=ON
YAK
BSF
PORTB,0
; RB0 ON
BCF
PORTB,1
; RB1 OFF
RETFIE
SONDUR
BCF
PORTB,0
; RB0 OFF
BSF
PORTB,1
; RB1 ON
RETFIE
;=======================================================
END
;Prog. Sonu
Zamanlayıcı 2 (TIMER2) Modülü
Timer2 modül aşağıdaki özelliklere sahiptir.
• 8 bit zamanlayıcı (TMR2 kaydedici),
• 8 bit peryot kaydedici (PR2),
• Okunabilir ve yazılabilir,
• Yazılım ile programlanabilir prescaler,
• TMR2, PR2 eşlemesinde kesme,
• Saat kaymasını üretmek için TMR2 çıkışının seçimli kullanımı SSP modülü,
TIMER2 Blok diyagramı
Zamanlayıcı 2 (TIMER2) İşlemleri
Timer2, CCP modülünün PWM modu için PWM zaman
tabanı olarak kullanılabilir. Giriş saati (Fosc/4)‘in
prescaler
seçeneğine
sahip
olur.
Aşağıdaki
durumlardan herhangi biri gerçekleştiğinde prescaler
ve postscaler sayaçları temizlenirler.
• TMR2 kaydedicisine yazıldığında ,
• T2CON kaydedicisine yazıldığında,
• Herhangi bir aygıt hazır olduğunda ,
***T2CON yazıldığında, TMR2 temizlenemez.
T2CON: TIMER2 Kontrol Kaydedicisi
T2CKPS0,T2CKPS1: Timer2’de prescaler’in ayarlandığı bitlerdir. Bu bitlerin
aldığı değerlere göre prescaler değeri değişmektedir.
When using the TMR2 timer, one should know several specific details
that have to do with its
registers:
• Upon the power is on, the PR2 register contains the value FFh.
• Both prescaler and postscaler are cleared by writing to the TMR2 register.
• Both prescaler and postscaler are cleared by writing to the T2CON
register.
• On any reset - you guess, both prescaler and postscaler are cleared.
TMR2ON: Timer2’ e yetki veren bittir. TMR2ON biti 1 yapıldığında Timer2
kullanılır durumdadır, 0 ise kullanım dışıdır.
TOUTPS3:TOUTPS0: Timer2’de postscaler ayarlarını n yapıldığı bitlerdir. Bu
bitlerin aldığı değerlerle timer2 değişik postscaler değerlerine
ulaşmaktadır.
TMR2 zamanlayıcısını kullanarak 1 sn zaman gecikmesi elde edilmesi uygulaması
LIST P=16F877A
INCLUDE
"P16F877A.INC"
__CONFIG h'3F31' ;__CONFIG _CP_OFF & _WDT_OFF &
_PWRTE_ON & _XT_OSC & _BODEN_OFF & _LVP_OFF &
_CPD_OFF
; veya __CONFIG b'11111100110001'
SAYICI_250
EQU h'20'
SAYICI_4
EQU h'21'
ORG
h'000'
GOTO BASLA
ORG
h'004'
GOTO KESME_ALTPROG
BASLA
CLRF PORTB
BSF STATUS, 5
CLRF TRISB
BCF OPTION_REG,7
BSF PIE1,1
; TMR2 ile PR2 degeri ayni
; olunca kesme olayi izni verildi)
MOVLW d'125'
; TMR2 üst sayma degeri d'125'
olarak
MOVWF PR2
; TMR2'ye yüklendi
BCF
STATUS, 5 ;BANK0'a geç
MOVLW b'00111100'
;bit(6:3)= 0111->1/8 son frekans
bölme,bit(2)TMR2ON=1,
MOVWF T2CON
;bit (1:0) = 00 -> 1/1 ön frekans
bölücü
BSF
INTCON,7
BSF
INTCON,6
LOOP
GOTO LOOP
KESME_ALTPROG
BCF
PIR1,1
;TMR2IF KESME BAYRAGINI SIL
BCF
STATUS,Z
;STATUS ZERO BAYRAGINI SIL
INCF
SAYICI_250,F ; HER 1 MS DE SAYICI DEGERI BIR ARTAR
MOVLW d'250‘
; W <- d'250‘
SUBWF SAYICI_250,W ; W = SAYICI_250 - W
BTFSS STATUS,Z
; SAYICI_250 =250 DEGERINE ULASTI MI?
RETFIE
BCF
STATUS,Z
INCF
SAYICI_4,F
;SAYICI_4 = (her 250 ms'de bir artar)
MOVLW d'4'
; W <- d'4'
SUBWF SAYICI_4,W ; W = SAYICI - W
BTFSS STATUS,Z
; SAYICI_4 =4 DEGERINE ULASTI MI?
RETFIE
CLRF
SAYICI_250 SAYICILARI SIFIRLA (1 sn SÜRE ELDE
EDILDI)
CLRF
SAYICI_4
BTFSS PORTB,0
; RB0'I TEST ET (1 MI?)
GOTO YAK
; HAYIR, RB0=ON RB1=OFF
GOTO SONDUR
; EVET, RB0=OFF RB1=ON
YAK
BSF
PORTB,0
BCF
PORTB,1
RETFIE
SONDUR
BCF
PORTB,0
BSF
PORTB,1
RETFIE
END
; RB0 ON
; RB1 OFF
; RB0 OFF
; RB1 ON
WDT (Watch-dog Timer - Zamanlayıcı)
WDT 'nin kullanım amacı, PIC 'i veya herhangi bir işlemciyi bir döngüde kilitlenmekten uzak tutmaktır.
Böyle bir durum yazılımda bir hata veya harici bir elektriksel kıvılcımlar nedeniyle ortaya çıkabilir. WDT,
PIC 'e bir çeşit kalp atışı sağlar ve eğer WDT yazmacını düzenli aralıklarla temizlenmezse bu kalp
atışları PIC 'i resete zorlar. Bu mükemmel bir özelliktir ve Güvenlik Sistemleri gibi ana kontrol
panelinde bir kilitlenmenin asla söz konusu olmaması gereken uygulamalar için birebirdir. Güç
koruması gereken ve yalnızca periyodik olarak açılması gereken ürünlerde WDT 'den faydalanırlar.
WDT’ın birkaç özelliği;
Watchdog Timer, başka hâricî bileşenler talep etmeyen serbest çalışan on-chip RC osilatörüdür. Bu
osilatörün WDT’a sağladığı nominal zaman aşımı süresi 18 ms’dir. Prescaler değeri artırılarak bu değer
2-3 sn’ye kadar çıkarılabilir.
WDT RC osilatörü , OSC1/CLKIN pininin RC osilatöründen ayrılmıştır. Yani, WDT , OSC1/CLKIN ve
OSC2/CLKOUT pinlerindeki saat palsı (clock) dursa bile çalışacaktır. Örneğin , SLEEP komutu yürürlüğe
konduğu durumlarda buna rastlanır. Normal işletim esnasında bir WDT zaman aşımı (time-out) PIC
reset’i yaratacaktır. Eğer PIC SLEEP modunda ise bir WDT cihazın uyanmasını (wake-up) ve
normal işletimine devam etmesine sebep olur.
OPTION kayıtçısının sadece ilk 4 biti (prescaler ve TMR0/WDT seçim bitleri) WDT’la ilgilidir. OPTION
kayıtçısının 3.biti 1 yapılarak WDT seçilir ve prescaler bitleri (OPTION<0:2>) ile de frekans bölme
değeri ayarlanır.
WDT’ın, CLRWDT komutuyla reset yapıldıktan sonra, saymasını tamamlayıp baştan tekrar saymaya
başladığı ana kadar geçen süreye zaman aşımı süresi (time-out) denir. WDT saymasını
tamamladığı anda zaman aşımı sinyali verir. Bu sinyal STATUS kayıtçısının 3. ve 4. bitlerindeki (TO
ve PD bayrakları) bayrakların durumunu değiştirir.
Eğer WDT ile, kontrolden çıkmış bir programı tekrar resetleyerek, kontrolü ele almayı planladıysanız ,
ana program başında STATUS kayıtçısının bu bitlerini kontrol etmelisiniz. Daha sonra da reset
gerçekleştikten hemen sonra da bu bitleri kontrol etmelisiniz. Böylece WDT’ın zaman aşımı süresi
dolduğunda program akışını başka bir yere dallandırabilirsiniz. Örnek program parçası aşağıdaki
gibi olabilir.
WDT_KONTROL BTFSS STATUS,TO ;TO bayrağı 1 mi?
CALL KUR ;hayır (zaman aşımı oluşmuş) , KUR altprogramını çağır.
MOVLW h’CC’ ;Evet (zaman aşımı oluşmamış) programa devam et.
.
.
PIC içerisinde bulunan WDT zamanlayıcısının durumunu konfigürasyon
bitlerini yazarken belirleyebiliriz. Bu konfigürasyon bitlerini program içerinde
aşağıdaki gibi yazabiliriz.
_CONFIG _CP_OFF & _WDT_ON &_ PWRT_ON & _RC_OSC
Zaman Aşım ı Süresi
WDT'nin CLRWDT komutuyla reset yapıldıktan sonra saymasını tamamlayıp, baştan tekrar
saymaya başladığı anda kadar geçen süredir. WDT'nin saymasını tamamladığı anda zaman
aşımı sinyali verir. Bu sinyal STATUS registerin 3. ve 4. bit'indeki flagların durumunu değiştirir .
WDT zamanlayıcısı blok diyagramı