Hallo Leute

Ich möchte einen (später noch ein paar mehr) Taster an den PORTB <7:4> drantun, der dann bei Betätigung einen Interrupt auslöst. Dieser Interrupt sollte dann dazu führen, dass der Timer 1 zu laufen beginnt.
Ich dachte eigentlich, dass das ne ziemlich simple Sache sein sollte, doch so langsam bin ich mit meinem Latein am Ende und das Ding läuft noch immer nicht.
Als Taster verwende ich so ein Ding: http://www.distrelec.com/ishopWebFro...ries/is/1.html
Dieser ist einerseits an 5V, und über eine Pull-Down-Widerstand von 470 Ohm mit der Masse verbunden. Ich habe das ganze auch mal mit dem Multimeter getestet und bekomme bei offenem Taster 0.1mV und bei gedrücktem Taster 5.01V. Somit ist da noch das Problem des Entprellens, doch das sollte ich eigentlich softwaremässig mit einer Warteschleife von 20ms überbrückt haben.
Doch auch so reagiert der PIC nicht auf die Betätigung des Tasters.

Das Programm sieht dann so aus:
Code:
ISR						;interupt service routine
	movwf	copyw
	swapf	STATUS, W
	bcf		STATUS, RP0
	movwf	copys
	
	btfsc	PIR1, TMR1IF
	goto	TMR1ISR
	btfsc	PORTB, 7
	goto	RBInt
	goto	ISRend


..........


RBInt
	bcf		INTCON, RBIF
	bsf		UPDRBI
	goto	ISRend

	
ISRend						;interupt end routine
	swapf	copys, w
	movwf	STATUS
	swapf	copyw, f
	swapf	copyw, w
	bsf		UPDLCD
	retfie


...............


InitTimer
	bcf		STATUS, RP0
	movlw	B'00110101'	;prescaler:  1:8; internal clock; no synchronize; Timer1 enabled
	movwf	T1CON
	bsf		STATUS, RP0
	bcf		PIE1, TMR1IE
	bcf		STATUS, RP0
	bsf		INTCON, RBIE
	bsf		INTCON, PEIE
	bsf		INTCON, GIE
	return

	Main
	btfsc	UPDLCD
	goto	WriteLcd
	call	Init
	call	InitLCD
	call	InitTimer
	
WriteLcd
	bcf		UPDLCD
	btfsc	UPDRBI
	goto	TestRBI
	call	printzehn
	call	printseke
	call	printsekz
	call	printmine
	call	printminz
	call	printstde
	call	printstdz
	movlw	b'11001111'
	call	OutLcdControl
	movlw	D'10'
	movwf	loops
	call	WAIT
	goto WriteLcd
	
TestRBI
	bcf		UPDRBI
	movlw	D'20'
	movwf	loops
	call	WAIT
	btfsc	PORTB, 7
	goto	StartTMR
	goto	WriteLcd
	
StartTMR
	bsf		STATUS, RP0
	bsf		PIE1, TMR1IE
	bcf		STATUS, RP0
	goto	WriteLcd
Die Hardware und der restliche Code sollten einwandfrei sein, da das ganze ohne den Taster ohne Probs funktionniert

Etwas lustiges ist mir auch noch aufgefallen: Wenn ich den Pull-Down Widerstand am Taster entferne, und dann nur ein Bein des Widerstands an die Masse hänge, läuft der Timer/Uhr. (Das 2. Bein hängt in der Luft) Das ist irgendwie ein bisschen komisch. ^^

Hat jemand schon mal so etwas gemacht, und könnte mir sagen, was ich ändern sollte?

mfg orph