Hallo!

Ich bin neu hier und auch neu beim PIC-Programmieren. Seit einigen Tagen beschäftige ich mich mit dem PIC 12F675. Zum Brennen habe ich ein PICkit2. Die Sprut-Seite kenne ich auch schon und habe dort schon viel gelesen. Ebenso versuche ich mich mit dem Datenblatt zu beschäftigen.

Ich habe jetzt ein Problem, bei dem ich nicht weiterkomme. Vielleicht kann jemand aus dem Forum mir ein wenig auf die Sprünge helfen.

Ich habe am PIC an GPIO0 eine LED mit Vorwiderstand angeschlossen und möchte die zunächst einmal nur zum Blinken bringen. Als Warteschleife für jeweils 0,5 Sekunden habe ich einen Codeschnipsel aus http://www.piclist.com/techref/picli...egen/delay.htm
Ich verwende den internen Oszillator.

Jetzt habe ich mir das folgende Programm zusammengestrickt:
Code:
        list      p=12f675        ; list directive to define processor
        #include  <p12f675.inc>   ; processor specific variable definitions

	__CONFIG _CP_OFF&_CPD_OFF&_BODEN_OFF&_MCLRE_OFF&_WDT_OFF&_PWRTE_ON&_INTRC_OSC_NOCLKOUT 

	cblock 0x20
	d1
	d2
	d3
	endc

;**********************************************************************
	ORG     0x000             ; processor reset vector

	call    0x3FF             ; retrieve factory calibration value
	bsf     STATUS,RP0        ; set file register bank to 1 
	movwf   OSCCAL            ; update register with factory cal value 
	bcf     STATUS,RP0        ; set file register bank to 0

        bsf     STATUS,RP0
        bcf     ANSEL,ANS0
        bcf     TRISIO,GPIO0

Anfang  bcf     STATUS,RP0
        movf    GPIO,0
        xorlw	0x01
        movwf   GPIO

			;499994 cycles
	movlw	0x03
	movwf	d1
	movlw	0x18
	movwf	d2
	movlw	0x02
	movwf	d3
Delay_0
	decfsz	d1, f
	goto	$+2
	decfsz	d2, f
	goto	$+2
	decfsz	d3, f
	goto	Delay_0

			;6 cycles
	goto	$+1
	goto	$+1
	goto	$+1

    goto    Anfang

	END
Mit dem XORLW nach der Marke "Anfang" will ich einfach bei jedem Durchlauf das Bit vom GPIO0 ändern. Das klappt aber seltsamerweise nicht. Hat da vielleicht jemand eine Erklärung dafür?