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:
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?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







Zitieren

Lesezeichen