Hallo Zusammen!
Ich habe ein Programm von einer früheren Aufgabe übernommen (ohne
Beschreibung). Nun funktionieren die Interrupts nicht!
Der Code:
______________________________________________________________________
_
list p=16F684
#include <p16F684.inc>
RADIX DEC
errorlevel -302
errorlevel -306
__CONFIG B'11001111010100'
org 0x00
nop
goto Init
org 0x04
goto Interrupt
Init call InitWatchdocOff
call InitOszillator
call InitPort
call InitTMR
call InitTMR2
call InitInterrupt
goto Main
;Teilprogramm von Init
InitWatchdocOff
clrwdt
movlw b'00001000'
banksel WDTCON
movwf WDTCON
banksel PORTA
return
;Teilprogramm von Init
InitOszillator
bsf STATUS,RP0
movlw b'01101000'
movwf OSCCON
movlw b'00000000'
movwf OSCTUNE
bcf STATUS,RP0
return
;Teilprogramm von Init
InitPort movlw b'00000000'
movwf PORTA
movwf PORTC
movlw b'00011101'
movwf ADCON0
movlw b'00000111'
movwf CMCON0
bsf STATUS,RP0
movlw b'10000000'
movwf ANSEL
movlw b'00010000'
movwf ADCON1
movlw b'11111100'
movwf TRISA
movlw b'11001011'
movwf TRISC
movlw b'00100000'
movwf IOCA
bcf STATUS,RP0
return
;Teilprogramm von Init
InitTMR movlw b'00000000'
movwf T1CON
bsf PIE1,0
movlw b'11111111'
addwf TMR1IE,1
movlw TMR1H_V
movwf TMR1H
movlw TMR1L_V
movwf TMR1L
bsf T1CON,TMR1ON
bcf PIR1,TMR1IF
return
;Teilprogramm von Init
InitTMR2
movlw b'00000000'
movwf T2CON
movlw d'255'
movwf PR2
bsf PIE1,1
bcf PIR1,1
return
;Teilprogramm von Init
InitInterrupt
bcf INTCON,1
bsf INTCON,4
bsf INTCON,6
bsf INTCON,7
return
;Interruptsubroutine
Interrupt
btfsc INTCON,1
goto EXINT
btfsc INTCON,RAIF
Interrupt1
btfsc PIR1,TMR1IF
call TMR1ir
btfsc PIR1,1
call TMR2ir
goto EXIT
EXINT bsf PORTC,5
bcf INTCON,1
goto EXIT
TMR1ir bcf T1CON,TMR1ON
EndTMR movlw TMR1H_V
movwf TMR1H
movlw TMR1L_V
movwf TMR1L
bsf T1CON,TMR1ON
bcf PIR1,TMR1IF
return
TMR2ir bcf T2CON,2
bsf PORTC,5
movlw d'255'
movwf PR2
bsf T2CON,2
bcf PIR1,1
return
Hallir movf PORTA,w
movwf SavePortA
bcf INTCON,RAIF
return
EXIT retfie
;Hauptprogramm
Main nop
btfss PORTC,0
goto links
bsf PORTC,4
bsf PORTC,5
goto End1
links btfss PORTC,1
goto MotDis
bcf PORTC,4
goto End1
End1 nop
goto Main
end
______________________________________________________________________
_
So wie ich das sehe sind die Interrupts der beiden Timers auch
konfiguriert/Aktiv!?!!
Aber ich komme gar nie in die Interrupt-Routienen!
Vielen Dank für die Hilfe und Gruess!
M.B
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.