Hey Michi,

beschäftige mich mit PICs ca. 1 Jahr.
Habe paar kleinere Projekte gemacht bissel Spannungsmessung LCD One-Wire Chip auslesen und so Spielereien hauptsächlich mit 16F628 und 16F819 mit AD Wandler.

Ist auch mein erster 18F will auch mit USB kommunizieren wie ich mir dsa vorstellt habe ... naja erstmal werde ich noch versuchen den Bootloader von Microchip auf den PIC zu bekommen und dann in Java oder so ne Software schreiben mit der ich mit dem PIC kommunizieren kann.
Allerdings komme ich mit Java API für Windows nich so klar.
Oder ich schaue mir C an ist ja alles "recht" ähnlich.

Und C lohnt sich ja auch für PICs weil Bootloader und USB Firmware komplett in C geschrieben ist von Microchip.

Kann übrigens brennen (lag am Brenner hab nun meinen guten alten genommen ^^ ) allerdings bekomme ich nen Rechteck an dem Pin heißt das der Interrupt sich immer wieder setzt sobald ich ihn einmal gesetzt habe...

Habe auch mal verzögerung eingebaut aber das macht die Frequenz des Rechtecks nur kleiner ^^

Code:
LIST P=18F2550, R=DEC    ; Use the PIC16F819 and decimal system

#include <P18f2550.INC>

;******************************************************************************
;Variable definitions
; These variables are only needed if low priority interrupts are used. 
; More variables may be needed to store other special function registers used
; in the interrupt routines.

		CBLOCK	0x080
		WREG_TEMP	;variable used for context saving 
		STATUS_TEMP	;variable used for context saving
		BSR_TEMP	;variable used for context saving
		loops
		loops1
		loops2
		ENDC

		CBLOCK	0x000
		EXAMPLE		;example of a variable in access RAM
		ENDC



org 0x00

		goto Init


;******************************************************************************
;High priority interrupt vector
; This code will start executing when a high priority interrupt occurs or
; when any interrupt occurs if interrupt priorities are not enabled.

		ORG	0x0008

		bra	HighInt		;go to high priority interrupt routine

;******************************************************************************
;Low priority interrupt vector and routine
; This code will start executing when a low priority interrupt occurs.
; This code can be removed if low priority interrupts are not used.

		ORG	0x0018

		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

;******************************************************************************
;High priority interrupt routine
; The high priority interrupt code is placed here to avoid conflicting with
; the low priority interrupt vector.

HighInt:



		btfsc		PORTA, 0         ;Led invertieren
		goto		aus
		goto		ein

aus                       ;Led aus

		bcf			PORTA,0
		bcf			INTCON,RBIF
		call 		verz
		retfie
ein                        ;Led ein

		bsf			PORTA,0
		bcf			INTCON,RBIF
		call		verz

		retfie

		       



Init

;Frequenzeinstellung

;		movlw	B'00001111'			;Maximum Frequency Tuning
;		movwf	OSCTUNE				

		movlw	B'01100010'			;4 MHz System/Clock Internalt Osc/
		movwf	OSCCON				

		clrf	PORTA
		
		movlw	0x0F
		movwf	ADCON1				;A/D auf Digital

		movlw	0x07				;Komperator aus
		movwf	CMCON
		
		clrf	TRISA
		movlw	B'00000010'
		movwf	TRISB
		clrf	TRISC
		
		movlw	B'11001000'
		movwf	INTCON

		bsf		INTCON2,RBIP
		bcf		INTCON2,RBPU

		movlw	B'01001000'
		movwf	INTCON3

		

Main

		goto Main

; --------------- 
; Verzögerung Einstellbar 250ms 
; --------------- 
 
verz	movlw   4		; einstellbar 1 = 250ms 4 = 1s
		movwf	loops
verz2   movlw   250 
        movwf  	loops1
verz3   movlw   200 
        movwf   loops2 
verz4   nop
        nop 
        decfsz  loops2,1 
        goto    verz4		; verz4 loop = 5us 
        decfsz  loops1,1 
        goto    verz3 		; verz3 loop = 1000us
		decfsz  loops,1
		goto    verz2		; verz2 loop = 250000us x verz1		

        return 

end
Vielleicht fällt euch ja was auf

MfG der Daniel


Edit: Wird der Interrupt eigentlich ausgelöst sobald einer der RB0:4 sich ändern (falling edge also von 5V auf Masse) oder kann ich das einstellen mit dem INT0 INT1 .... enable/disable ?