Hallo zusammen,
ich versuch mich gerade an einem Pic 12F683 und hab Probleme mit den GPIO (IO-Pins):

Ich will hier testweise mal jeden Pin einzeln anschalten und dann wieder ausschalten. Seltsamerweise werden alle Pins auf 0 gesetzt sobald ein zugriff auf einen anderen Pin geschieht. Also ich sehe am Oszi das z.B. GPIO.0 auf high geht aber dann sofort mit dem nächsten Befehl wieder auf low, obwohl der nächste Befehl ("bcf GPIO,1") nichts mit diesen Pin zu tun hat.
Bei Pin "GPIO.5 sehe ich aber das der Pin länger auf high bleibt weil wohl erst noch der Sprungbefehl kommt und dann erst wieder auf low geht.

Ist es etwa nicht möglich die Pins einzeln via "bsf" / "bcf" zu manipulieren?

Ein anderes Problem was ich noch habe ist das der Pin GPIO.3 nicht gesetzt werden kann. Habe ich etwas in der Konfiguration vergessen?

Code:
;**************************************************************
; los gehts mit dem Programm

	org 	0
	goto	Init	


; Das Programm beginnt mit der Initialisierung

Init	
	bsf     STATUS, RP0		; Bank 1
	movlw	B'00110001'		; µC läuft mit 500kHz, Oscilator running from internal
	movwf	OSCCON
	movlw	B'00000000'		; alle Pins sind Input
	movwf	TRISIO
	movlw	B'00110111'		; aktiviere alle pull-up
	movwf	WPU
	movlw	B'00000111'		; enable pull-up, IRQ on falling edge, timer0 get clock internal, prescaler set to timer0 1:256
	movwf	OPTION_REG
	bcf     STATUS, RP0		; Bank 0

main
	bcf		GPIO,0
	bcf		GPIO,1
	bcf		GPIO,2
        bcf		GPIO,3
	bcf		GPIO,4
	bcf		GPIO,5
	bsf		GPIO,0
	bsf		GPIO,1
	bsf		GPIO,2
        bsf		GPIO,3
	bsf		GPIO,4
	bsf		GPIO,5
	goto main

	end