18F6410 RB4-RB7 kesmesi sorunu

Başlatan EMG81, 25 Nisan 2011, 13:15:34

EMG81

Selam beyler. Kod aşağıdadır. Sıkıntım Pic 1 kere int. geldikten sonra programda sürekli interrup ta giriyor. Yazdığınız dil ASM,C,Basic Farketmez. Her dilde anlatabilirsiniz. Teşekkürler.
Device = 18F6410
Xtal=40Mhz

Config_Start 
    OSC = HSPLL 
    FCMEN = OFF 
    IESO = OFF 
    PWRT = OFF  
    BOREN = OFF 
    BORV = 3 
    WDT = OFF
    CCP2MX = PORTC
    LPT1OSC = OFF
    MCLRE = On
    STVREN = OFF
    XINST = OFF
    Debug = OFF
    CP = OFF
Config_End

'         Setup-------------------------------

    ADCON0=7
    ADCON1=7
 
    TRISA=255
    TRISB=%11111000
    TRISC=255
    TRISD=0
    TRISE=0
    TRISF=0
    TRISG=%00000011 
    
    PORTA=0
    PORTB=0
    PORTC=0
    PORTD=0
    PORTE=0
    PORTF=0
    PORTG=%00000011 

'''''''''''''''''''''''''''''''''''''''''''''''
    INTCON =%11001000	    ' interruplar açık, Rb4-7 interruptları açık

GoTo Start
On_Hardware_Interrupt GoTo INTGELDI
    
Start:
    
    GoTo Start
    
INTGELDI:

    Disable                              'İnterruplar kapalı
    Context Save                     ' değişken ler kopyalanıyor
    Toggle Portf.7                    ' portf.7 yi tersle
    INTCON.0=0                      'PB4-7 int. bayrağı temizleniyor
    Context Restore                ' sistem değişkenleri geri yükleniyor
    Enable                              ' interruplar açık
    Resume				' kaldığın yere geri dön

uardal

merhaba ben protonda aşağıdaki gibi bir interrupt örneği kullanıyorum ve herhangi bir sorun yaşamıyorum.


Context SAVE
GIE = 0          ' Disable global interrupts
While GIE = 1    ' Make sure they are off
GIE = 0          ' Continue to clear GIE
Wend             ' Exit when GIE is clear
PEIE=0
INTE=0
INTF=0
sayici =sayici + 1
GIE=1
PEIE=1
INTE=1

Context Restore