timer0 ı çok sayıda zamanlayıcı olarak kullanma?

serkan0388

Üye
Katılım
2 Kas 2008
Mesajlar
1
Puanları
1
Yaş
39
timer0 ile iki anahtara bağlı bir ledi nasıl kontol edebilirm?1. anahtar ledi 10 sn. yakıyor.2. anahtar ise aynı ledi 5 sn. yakıyor.Mesela 1. anahtar kapandıktan 3 sn. sonra ikinci anahtar da kapanırsa ledin yine 5 sn. sonra sönmesi lazım.yani toplamda 8 sn. yanmış olacak.yada ikinci anahtar kapandıktan 4 sn sonra birinci anahtar kapanırsa led yine 10 sn sonra sönecek yani toplamda 14 sn. yanmış olacak.timer her 50 ms. de bir kesme bayrağını 1 yapıyor olarak ayarladım diyelim.timer0 aktif olduktan sonra 200 çevrim sonunda(10 sn sonra) ledi söndürüyorum.yalnız ikinci anahtarı nasıl eklicem o konuda yardımcı olursanız sevinirim.(PIC16F877a kullanıyorum)

;10 sn için kesme alt programı
BCF INTCON,2 ; TMR0 kesmesini sonrakilere hazırla
MOVLW D'20' ; TMR0 ilk sayısı = d’20’
MOVWF TMR0 ; TMR0 saymaya başlar
INCF SAY,F ; 10 mS'leri tutan sayacı 1 arttır
MOVLW D'200'
SUBWF SAY,W ; W = SAY - W
BTFSS STATUS,Z ; SAY = 200 oldu mu?
GOTO KESME_SONU ; Hayır, ana programa git ve bekle.
CLRF SAY ;Evet,10 mS'leri tutan sayacı sıfırla
CLRF PORTB
KESME_SONU
RETFIE
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Çevrimiçi üyeler

Geri
Üst