Nu er jeg efterhånden ved at løbe tør for ideer til at få liv i Pic'en, og håber at nogen kan spotte fejlen i koden, som jeg har kopieret ind længere nede. Indtil videre er programmet meget simpelt - Pic'en (Pic12F683) skal køre på den interne clock (dvs. ingen ekstern krystal), og i første omgang blot blinke med en lysdiode, for at vise at der er liv. Der er ikke defineret nogen interrupt routiner, blot er benene konfigureret til at være udgange (på nær ben 3, som er indgang). Imidlertid sker der intet når jeg tilslutter forsyningsspænding, indtil jeg sætter proben på ben
4, hvorefter dioden lyser svagt (der står kun 2 volt på udgangen). Derimod er der 5 volt på både ben 4 og 5. Det pudsige er, at der sket en reaktion når der tilføres en kapacitans fra proben på ben 4 tiltrods for, at der ikke er defineret nogen indgange, og at der kan komme en lavere forsyningsspænding på ben 7 (hvor dioden er tilsluttet) end de 5 volt. Når jeg fjerne forsyningsspændingen og et øjeblik efter tilslutter den igen lyser dioden stadig svagt, men det er ikke nødvendigt at "tænde" den med proben - som om der er en indre kapacitans i kredsen der først skal aflades.Nogen der har gode ideer til hvordan jeg kommer videre?
Mvh. Henrik ___________________
;Equates Section TMR0 EQU 1 ;TMR0 is file 1 STATUS EQU 3 ;Status is file 3 GPIO EQU 5 ANSEL EQU 9FH CMCON0 EQU 19H ZEROBIT EQU 2 ;Zerobit is bit 2 COUNT EQU 20H ;Count is file 0C, a register to count events OPTION_REG EQU 81H OSCCON EQU 8FH TRISIO EQU 85H ;*****************************************************
LIST P=12F683 ORG 0 ;Start at memory address 0 GOTO START
;*****************************************************
; Subroutine section DELAY CLRF TMR0 ;Start TMR0 LOOPA MOVF TMR0,W ;Read TMR0 into W SUBLW .39 ;Time - 39 BTFSS STATUS,ZEROBIT ;Check time-W = 0 GOTO LOOPA RETLW 0 ;Return after TMR0=39
; 1 second delay DELAY1 MOVLW .100 MOVWF COUNT TIMEA CALL DELAY DECFSZ COUNT GOTO TIMEA RETLW 0
; 1/2 second delay DELAYP5 MOVLW .50 MOVWF COUNT TIMEB CALL DELAY DECFSZ COUNT GOTO TIMEB RETLW 0
;*****************************************************
;Configuration section
START BANKSEL OSCCON ;Set oscillation frequency to 4Mhz MOVLW B'01100001' MOVWF OSCCON
BANKSEL OPTION_REG ;Set prescaler to 256 MOVLW B'00000111' MOVWF OPTION_REG
BANKSEL GPIO CLRF GPIO ;Init GPIO MOVLW 07h ;Set GP to MOVWF CMCON0 ;digital I/O
BANKSEL ANSEL ; CLRF ANSEL ;digital I/O MOVLW 0Ch ;Set GP as inputs MOVWF TRISIO ;and set GP ;as outputs
;*****************************************************
BEGIN BSF GPIO,1 LOOPB BSF GPIO,0 ;Turn ON Port B CALL DELAY1 BCF GPIO,0 CALL DELAY1 GOTO LOOPB END