RBIF Interrupt Neden Çalışmıyor?

Başlatan oki, 14 Şubat 2004, 15:28:46

oki

16F876 da aşağıdaki kodu yazdım ama PortC.0 devamlı yanıp sönüyor. Normalde Portb4-7 ye low geldiğinde interrupt olmalı değilmi Nerede hata var???


'portc.0 led bağlı
'portb.7 ye buton bağlı

option_reg.7=0      'pull-up enabled
   intcon=$88
   
start:
   on interrupt goto wake_up
loop:
   pause 10
   goto loop
   

   disable
wake_up:
   high portc.0
   pause 1000
   low portc.0
   pause 1000
'
   intcon.0=0
   resume
   enable

fsan

selam kardes,
bende merak ettim bu sekilde denedim oldu. BAS ve DSN dosyalara bakmak istersen burada
@ device  pic16f84, xt_osc, wdt_off, pwrt_on, protect_off

led1	VAR PORTB.0
led2	VAR PORTB.1
led3	VAR PORTB.2
led4	VAR PORTB.3

sw1   VAR PORTB.4
sw2	VAR PORTB.5
sw3	VAR PORTB.6
sw4	VAR PORTB.7

cnt   var byte
cnt2  var byte

INTCON.3 = 1	' Enable the RB port change interrupt
OPTION_REG.7 = 0	' Enable PORTB pull-ups
TRISA = %10000
PORTA = 0
TRISB = %11110000
PORTB = 0

on interrupt goto wake_up

main:
   PORTA = PORTA + 1
   for cnt = 0 to 50
      pause 10
   next
GoTo main

disable 
wake_up: 
   IF sw1 = 0 Then S1
   IF sw2 = 0 Then S2
   IF sw3 = 0 Then S3 
   IF sw4 = 0 Then S4 
goto exit

S1:
   for cnt = 1 to 1
      led1 = 1
      pause  500
      led1 = 0
      pause  500
   next   
goto exit

S2:
   for cnt = 1 to 2
      led2 = 1
      pause  500
      led2 = 0
      pause  500
   next   
goto exit

S3:
   for cnt = 1 to 3
      led3 = 1
      pause  500
      led3 = 0
      pause  500
   next   
goto exit

S4:
   for cnt = 1 to 4
      led4 = 1
      pause  500
      led4 = 0
      pause  500
   next   
goto exit

exit:   
   INTCON.0 = 0	' Clear the RB port change flag bit
   resume 
   enable

End