iyi günler timer'i istediğim zaman butonla başlatmak istiyorum ama buton kontrol edemiyorum. boton kontrol döngüsü içinde intcon.2=0 yazsamda olmuyor
ON INTERRUPT GoTo KESME 'kesme oluşursa KESME adlı etikete git.
OPTION_REG=%10000101 'Pull up dirençleri İPTAL- Bölme oranı 1/64.
INTCON=%10100000 'Kesmeler aktif ve TMR0 kesmesi aktif
TMR0=0
CMCON=7 '16F628 de komparatör pinleri iptal hepsi giriş çıkış
X VAR WORD
Y VAR BYTE
SAYI VAR BYTE
SAYAC VAR BYTE
SN VAR BYTE
DAK VAR BYTE
SAAT VAR BYTE
GUN VAR BYTE
symbol buton=porta.0
buton_kontrol:
if buton=1 then goto basla
goto buton_kontrol
basla:
...
..
goto basla
DISABLE
KESME:
SAYAC=SAYAC+1 'kesme sayacı 1 sn= 61(sayac) x 256 (Tmr0) x 64 (bölme)
IF SAYAC=58 then '61 adet kesme olunca 1 sn. süre geçiyor.(999424 us)
SAYAC=0 'sayaç sıfırlanıyor
SN=SN+1
Y=Y+1 'saniye değeri bir artırılıyor
IF SN=60 THEN 'saniye 60 olmuş ise 1 dakika süre geçti ohalde
SN=0 'saniye sıfırlanıyor
DAK=DAK+1 'dakika değeri bir artırılıyor
IF DAK=60 then 'dakika 60 olmuş ise 1 saat süre geçti
DAK=0 'dakika sıfırlanıyor
endif 'gün sıfırlanıyor 1 yıl geçti
ENDIF
ENDIF
INTCON.2=0 'TMR0 Kesme bayrağı sıfırlanıyor
RESUME
ENABLE
butonla tmr0 kesmesini aktifleyecek sekilde ayarla.(intcon.5=1)ilk tanimlarda tmr0 kesmesini kapat.
Alıntı yapılan: "AKP"iyi günler timer'i istediğim zaman butonla başlatmak istiyorum ama buton kontrol edemiyorum. boton kontrol döngüsü içinde intcon.2=0 yazsamda olmuyor
ON INTERRUPT GoTo KESME 'kesme oluşursa KESME adlı etikete git.
OPTION_REG=%10000101 'Pull up dirençleri İPTAL- Bölme oranı 1/64.
CMCON=7 '16F628 de komparatör pinleri iptal hepsi giriş çıkış
X VAR WORD
Y VAR BYTE
SAYI VAR BYTE
SAYAC VAR BYTE
SN VAR BYTE
DAK VAR BYTE
SAAT VAR BYTE
GUN VAR BYTE
symbol buton=porta.0
buton_kontrol:
if buton=1 then goto basla
goto buton_kontrol
basla:
INTCON=%10100000 'Kesmeler aktif ve TMR0 kesmesi aktif
TMR0=0
INTCON.5=1 'TEKRAR EDELİM GARANTİ OLSUN
...
..
goto basla
DISABLE
KESME:
SAYAC=SAYAC+1 'kesme sayacı 1 sn= 61(sayac) x 256 (Tmr0) x 64 (bölme)
IF SAYAC=58 then '61 adet kesme olunca 1 sn. süre geçiyor.(999424 us)
SAYAC=0 'sayaç sıfırlanıyor
SN=SN+1
Y=Y+1 'saniye değeri bir artırılıyor
IF SN=60 THEN 'saniye 60 olmuş ise 1 dakika süre geçti ohalde
SN=0 'saniye sıfırlanıyor
DAK=DAK+1 'dakika değeri bir artırılıyor
IF DAK=60 then 'dakika 60 olmuş ise 1 saat süre geçti
DAK=0 'dakika sıfırlanıyor
endif 'gün sıfırlanıyor 1 yıl geçti
ENDIF
ENDIF
INTCON.2=0 'TMR0 Kesme bayrağı sıfırlanıyor
RESUME
ENABLE
Saygılarımla kolay gelsin