Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

pot komutu ve kesme

Başlatan kahraman10, 06 Ocak 2011, 17:56:41

kahraman10

Arkadaşlar pot komutu çalışırken kesme olmuyor. Daha önce karşılaşan oldu mu bu durumla? rb0/int kesmesi.
    Device = 16F873A
    XTAL = 20
    On Interrupt GoTo ATES
    Symbol BTU PORTC.4
    Symbol BTS PORTC.3
    Symbol DRV PORTC.2
    
    Dim SAY As Word
    Dim BEKLE As Word
    Dim POTANS As Word
    Dim CARP As Word

    OPTION_REG.6=0
    INTCON=%11010000 
    INTCON.1=0
    Clear

    BEKLE=1
    SAY=0
    CARP=10

LOOP:
    POTANS=Pot PORTB.1,100
    BEKLE=POTANS*CARP
   GoTo LOOP

Disable
ATES:  
    Inc SAY
    DelayUS 1
    If SAY<BEKLE Then ATES
    SAY=0
    High DRV 
    DelayUS 200
    Low DRV 
 '   POTANS=Pot PORTB.1,100
 '   BEKLE=POTANS*CARP
    INTCON.1=0 
   Resume
Enable  
   

Maxim

olmaz çünkü yazılımsal interrupt kullanmışsınız, yani picbasic gibi olanı

On_Interrupt
olanına bakınız helpten

kahraman10

#2
EDIT:Kesme rutini çalışırken pot komutu çalışmıyor.Kesime gitme süresi pot okuma süresinden kısa olduğunda pot komutu değer okuyamıyor.
Benim bulduğum sonuç bu oldu.



bir hata yapmışım haklısın ve teşekkür ederim.
Ancak yeni kodum da olmadı.
   ON_HARDWARE_INTERRUPT GoTo ATES
  
    Symbol BTS PORTC.3
    Symbol BTD PORTC.0
    Symbol DRV PORTC.2
    
    Dim SAY As Word
    Dim BEKLE As Word
    Dim POTANS As Word
    Dim CARP As Word
    Dim DON As Word
    OPTION_REG.6=0
    INTCON=%11010000 
    INTCON.1=0
    Clear
    BEKLE=1
    SAY=0
    CARP=10
    GoTo LOOP
ATES:  
    Inc SAY
    DelayUS 1
    If SAY<BEKLE Then ATES
    SAY=0
    High DRV 
    DelayUS 200
    Low DRV 
    INTCON.1=0 
    Context Restore

LOOP:
    For DON=1 To 3000 :DelayUS 1:Next
    POTANS=Pot PORTB.1,100
    BEKLE=POTANS*CARP
   '' If BTU=0 Then BEKLE=BEKLE+10:GOTO LOOP
   '' If BTD=0 Then BEKLE=BEKLE-10:GoTo LOOP
    GoTo LOOP


Tuşları aktif edersem sorun olmuyor, tuşları kapatıp pot komutuna geçiyorum kesmeler devam ediyor program sanki sadece kesme rutininde dönüyor loop döngüsüne hiç uğramıyor gibi bişi oluyor. garip bi durum oldu.