PIC problem

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View

Jeg roder med et program på en pic16f628.
Desværre virker det som om den til tider resetter sig selv.

Det kan være efter 20 programgennemløb eller efter 20 cycles - det
varierer. Det ene øjeblik kører programmet fejlfrit, så ændrer jeg lidt
i det (totalt simpelt, fex tilføjer movlw 0x10, movwf TMP) og det går
totalt i coma!

Jeg er nybegynder med PIC så lidt hints om hvilke åbenlyse fælder der
findes vil blive påskønnet :)

Jeg kører den med den interne 4Mhz oscillator, intern _mclear pull-up
(bruger porten) og bruger hverken interrupts eller timere (endnu).


Mvh
   Roberto

Re: PIC problem
Quoted text here. Click to load it

Kender den desværre ikke. Men indtil der kommer mere kvalificerede forslag:

Check evt. reset pin: Er den korrekt pullet?
Check forsyning/afkobling er den OK?
Har du styr på en evt watchdog?

/Anders



Re: PIC problem
Quoted text here. Click to load it

Nope :)

Mange tak!

Re: PIC problem
Quoted text here. Click to load it
Det kunne være et WATCHDOG-problem - jeg lavede selv denne
"fejl" ved mit første program - slå den fra, hvis du ikke skal bruge
den.

Mvh KS



Re: PIC problem
Quoted text here. Click to load it

Jeg har ikke styr på om der er en watchdog.
Skal se efter.

Mange tak.

Re: PIC problem

Okay, har tilføjet '& _WDT_OFF' til mit CONFIG ord og håber det bedste :)

Mvh
   Roberto


Re: PIC problem
Quoted text here. Click to load it

Og det havde desværre ingen effekt.

Mvh
   Roberto


Re: PIC problem
Quoted text here. Click to load it

Kender ikke lige den PIC, men alligevel...
At det nogle gange virker, kan godt være et støj/afkoblingsproblem. Er din
forsyning afkoblet? (Både en stor lyt og små kodensatorer mellem Vdd og Vss
helt oppe ved benene).

Virker det hvis du indsætter NOP's (No OPerations) i koden? Eller kan du
singlesteppe dig igennem programmet? Hvis det får programmet til at virke,
kan det meget vel være et støjproblem.

/Simon



Re: PIC problem
Quoted text here. Click to load it

Det lyder meget plausibelt.

Quoted text here. Click to load it

10uF før regulatoren og 470nF efter.
Jeg har 100nF direkte imellem Vdd og Vss.

Quoted text here. Click to load it

Det ændrer på symptomerne.

Quoted text here. Click to load it

Det vil jeg undersøge, der er jo heller ikke nogen der siger det skal
være nemt :)

Mvh
   Roberto

Re: PIC problem

Quoted text here. Click to load it

   Jeg har oplevet noget tilsvarende hvis mit program har en størrelse tæt
på max.



Re: PIC problem
Quoted text here. Click to load it
...

Der bruges under 400 words, der er plads til 2048 i en 16f628.

Mvh
   Roberto

Re: PIC problem
Quoted text here. Click to load it

Virker dit program i software simulatoren ?

Mvh Per Hansen

Re: PIC problem
Quoted text here. Click to load it

Hmmm, jeg bruger gputils og picprog (linux), kender ikke til nogen simulator :)

Mvh
   Roberto (livet er for kort til windows)

Re: PIC problem

Quoted text here. Click to load it

Livet er for kort til IKKE at bruge simulator:
http://www.dattalo.com/gnupic/gpsim.html

Bo //

Re: PIC problem
Quoted text here. Click to load it

Du har sikkert ret.

Quoted text here. Click to load it

Glimrende, vil afprøve den ved først kommende lejlighed, mange tak.

Mvh
   Roberto

Re: PIC problem
Quoted text here. Click to load it

gpsim har jeg selv brugt med success på linux.
Det kan ikke betale sig kun at bruge lysdiodder til debug. MPlabs ICD er
også ganske nyttig, men den virker kun i mplab til windows.

Mvh Per Hansen

Re: PIC problem
Quoted text here. Click to load it

Der kan være mange årsager til den fejl.
Som andre også nævner er en mulighed WDT. en anden fejl som jeg ofte har set
er stackpointer overflow (der er kun plads til 8 hop) , så hvis du har mange
call samt int. rutiner er det en oplagt fejl mulighed.
Der er også rig mulighed for forkert opsatte porte.

Prøv at poste din program kode.



--
Hilsen
   Peter N Petersen
We've slightly trimmed the long signature. Click to see the full one.
Re: PIC problem
Quoted text here. Click to load it

Helt sikkert


Jeg har (tror jeg) lukket for wdt, med '& _WDT_OFF'

Quoted text here. Click to load it

Ingen int, få kald, men det er da muligt jeg selv har lavet en fejl.

Quoted text here. Click to load it

Jeps


Åh det er jo ret intimt, jeg har den ikke her så det bliver senere.

Mvh
   Roberto

Re: PIC problem

Quoted text here. Click to load it

Det burde du også have. Jeg tror dog godt du kan enable WDT igen fra
assembler, hvis du ikke har helt styr på opsætning af registerne.
Prøv evt. at tilføje en linie med assemblerkoden clrwdt i din hoved
programløkke. Så er du i hvertfald sikker på at få "klappet hunden".



Re: PIC problem
Quoted text here. Click to load it

Jeg kunne også lave en handler og enable wdt'en.
Hvordan gør man det?
Er det som en interruptrutine?

Mvh
   Roberto

Site Timeline