16F88 resetar? LED debug

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
amfitony
Inlägg: 29
Blev medlem: 15 februari 2007, 19:15:58
Ort: Uppsala
Kontakt:

16F88 resetar? LED debug

Inlägg av amfitony »

hejsan, har lite nybörjarproblem med en 16f88 som inte vill lyda.

tanken är att den ska tända en lysdiod och sedan släcka den i debug syfte och sen ska den inte göra mer. Som det är nu så blinkar lysdioden (ser ut som att den den resettas med ca 1 sek mellanrum..)
och detta utan att jag har någon WDT igång :< tror jag iallaf inte

såhär ser koden ut iallaf

1a configbitarna(h2007): 3F10
2a configbitarna(h2008): 3FFF

Kod: Markera allt

        list     	p=16f88 
        include  	<p16F88.inc> 
        errorlevel 	-302           ;Suppress bank warning 


        ;change this to use or not use analog inputs 
   		BANKSEL 	ANSEL       ; Select Bank of ANSEL 
   		MOVLW 		0x00       ; Configure all pins 
   		MOVWF 		ANSEL       ; as digital pins 
   		;change this if you want to decide input/output for portA
		MOVLW 		0x00       ; Value used to 
   		MOVWF 		TRISA       ; Set RA<7:0> as outputs 
   		BANKSEL 	PORTA		

COUNT	equ			h'20'
COUNT2	equ			h'21'

		goto 		main
;------Delay-sub--------
delay
		movlw		15h
		movwf		COUNT2
dloop	
		decfsz 		COUNT,F
		goto 		dloop		
		decfsz		COUNT2,F
		goto 		dloop
		return	
;-------End of Delay-sub-
main          		
		movlw		0x00
		movwf		PORTA
		call 		delay
		movlw		0x01
		movwf		PORTA
		call		delay
;--Done---
loop 			
		goto 		loop			   
				
		end
Den hinner alltså inte ens igenom hela programmet som det är nu,
lampan är släckt under ca 1 sek, sen hinner programmet precis slå igång "porta" till 01h och gå in i loopen innan den resettas och släcks igen.

blir: 1sek släckt, 0,1sek tänd, 1 sek släckt,0,1 sek osv.

ändrar jag i programmet så den börjar med att vara tänd så blir det
1 sek tänd, 0,1 sek släckt.

vad kan vara på tok? f.ö så används en wisp och allt är kopplat enligt http://www.voti.nl/blink/index_1.html#16F88

med undantag från oscillatorn (kör intern) och dioden. spänningsregulator via 7805.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> 1a configbitarna(h2007): 3F10
> 2a configbitarna(h2008): 3FFF

Säger inte ett smack.
Visa de riktiga __CONFIG inställningarna istället.

Låter onekligen som ett WDT problem...

EDIT : Hur går koden när den körs i MPSIM ?
Användarvisningsbild
amfitony
Inlägg: 29
Blev medlem: 15 februari 2007, 19:15:58
Ort: Uppsala
Kontakt:

Inlägg av amfitony »

sodjan skrev:> 1a configbitarna(h2007): 3F10
> 2a configbitarna(h2008): 3FFF

Säger inte ett smack.
Visa de riktiga __CONFIG inställningarna istället.

Låter onekligen som ett WDT problem...

EDIT : Hur går koden när den körs i MPSIM ?
http://img412.imageshack.us/img412/8413/confnc3.jpg

så ser det ut i configure -> configuration bits
ska jag vara ärlig har jag ingen aning om hur det funkar, vet inte om
de configbitarna verkligen används.

I MPSIM funkar allt som det ska när jag debuggar, den drar igenom koden o fastnar sedan nere i loopen. har problem med att få mina breakpoints att fungera så jag evt inte exakta tiden det tar.
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Använd __CONFIG istället, se slutet av filen P16F88.INC för exempel.
På så sätt följer CONFIG inställningarna med källkoden och man
behöver inte hålla reda på vad det var man använde.

> har problem med att få mina breakpoints att fungera

Hur då ? Det är bara att sätta en B-P på en rad så "fungerar det"...
Användarvisningsbild
amfitony
Inlägg: 29
Blev medlem: 15 februari 2007, 19:15:58
Ort: Uppsala
Kontakt:

Inlägg av amfitony »

sodjan skrev:Använd __CONFIG istället, se slutet av filen P16F88.INC för exempel.
På så sätt följer CONFIG inställningarna med källkoden och man
behöver inte hålla reda på vad det var man använde.

> har problem med att få mina breakpoints att fungera

Hur då ? Det är bara att sätta en B-P på en rad så "fungerar det"...
:D jaaaa, tack så mycket. nu funkar allting perfekt för första gången.
problemet var som du sa att man ska ha configinställningarna inskrivna i filen och inte bara i editorn.

Breakarna funkar också nu, visste inte att man var tvungen att lägga dom vid en instruktion. :oops:

för andra nybörjare kan jag ju lägga upp vad som stod i botten på 16F88.inc ifall nån gör samma miss:

Kod: Markera allt

; To use the Configuration Bits, place the following lines in your source code
;  in the following format, and change the configuration value to the desired 
;  setting (such as CP_OFF to CP_ALL).  These are currently commented out here
;  and each __CONFIG line should have the preceding semicolon removed when
;  pasted into your source code.

;Program Configuration Register 1
;		__CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC

;Program Configuration Register 2
;		__CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Fint !

Jag vet inte om man *måste* ha CONFIG inställningarna i källkoden,
jag sa bara att (jag tycker att) det är bättre att ha det så... :-)

Och visst, en breakpoint måste ligga på en instruktion. Kommentarrader
och annat "körs" ju aldrig så att processorn kommer aldrig dit.
Men klagar inte MPLAB/MPSIM om man lägger en B-P fel !?
Jag hade för mig det, men minns kanske fel...
Skriv svar