Hallo,
Ich hab noch ein bischen Totzeit eingebaut, dammit das ein - ausschalten auch wirklich "smooth" funktioniert und einen Register für den Zustand im PortB (Das direkte auslesen des PortB funktioniert aus irgendeinem Grund nicht).
Vielleicht steht ja jemand vor dem selben Problem, dann kann er ja den Code hier ganz gut gebrauchen...
Code:CODE HighInt: btfsc test, 1 ;Led invertieren goto aus goto ein aus ;Led aus call totzeit ;Damit das ganze nicht so empfindlich ist :) bcf PORTB,1 bcf test,1 bcf INTCON,RBIF ;Interruptflag löschen retfie ein ;Led ein call totzeit ;Damit das ganze nicht so empfindlich ist :) bsf test,1 bsf PORTB,1 bcf INTCON,RBIF ;Interruptflag löschen retfie ;****************************************************************************** ;Low priority interrupt routine ; The low priority interrupt code is placed here. ; This code can be removed if low priority interrupts are not used. LowInt: movff STATUS,STATUS_TEMP ;save STATUS register movff WREG,WREG_TEMP ;save working register movff BSR,BSR_TEMP ;save BSR register ; *** low priority interrupt code goes here *** movff BSR_TEMP,BSR ;restore BSR register movff WREG_TEMP,WREG ;restore working register movff STATUS_TEMP,STATUS ;restore STATUS register retfie ;****************************************************************************** ;Start of main program ; The main program code is placed here. ;************************************************************** ; das Hauptprogramm Init ; RB0-Interrupt einstellen movlw b'11111101' movwf TRISB movlw b'00000000' movwf PORTB bcf INTCON2,RBPU ;Interne Pullups aktivieren clrf INTCON ;ganzes INTCON löschen bsf INTCON, RBIE ;enables PortB Interrupts bsf INTCON, GIE ;global interrupt enable return totzeit movlw 0xFF movwf bigcount bigloop decfsz bigcount goto weiterloop return weiterloop movlw 0xFF movwf smallcount smallloop decfsz smallcount goto smallloop goto bigloop Main: call Init loop goto loop ; *** main code goes here *** ;****************************************************************************** ;End of program END







Zitieren

Lesezeichen