Hjälp med felsökning av kod till PIC12F683

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

Hej jag behöver hjälp att hitta vad jag har gjort fel i min kod. jag försöker att lyssna av en knapp som ska aktivera hela programmet när man trycker på den. men jag får inte det att fungerar. utan hela programmet startar utan att jag har tryckt på knappen. kan ni se vad jag har gjort för fel?

Kod: Markera allt

unsigned char x = 0;
void larm(){
     int i = 0;
     while(i<5){
              GPIO.B0 = 1;
              Delay_ms(1000);
              GPIO.B0 = 0;
              Delay_ms(1000);
              i++;
     }
}
void program(){
GPIO.B5 = 1;
GPIO.B1 = 1;
Delay_ms(10000);
GPIO.B5 = 0;
GPIO.B1 = 0;
larm();
}
void main() {

     TRISIO.B0 = 0;
     TRISIO.B1 = 0;
     TRISIO.B5 = 0;

     CMCON0 = 0x07;
     ANSEL = 0;
     while(1){
              x = GPIO.B4;
              if(x == 0){} 
              if(x == 1){program();} //har testat att byta ut x till 0 men den startar även då programmet. 
     }
}
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av sodjan »

Vad är kopplat till GPIO4 ?
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

en tryck knapp.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av sodjan »

Hur?
Enbart det?
Ingen pull up/down?
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

det sitter en resistor emellan.

men problemet måste sitta i koden. eftersom jag har bytt ut x till 1 och 0 men får samma fel.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av sodjan »

"Emellan" ???
Skit samma...

EDIT:
Om du inte talar om hur du har kopplat så blir
det lite meningslöst det hela.
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

jag har kopplat så här till B4 så sitter det en knapp som är kopplat till 5v och så sitter det en resistor på 1kohm till ingången till knappen utgången är direkt kopplat till B4.


men mitt problem är att B5 och B1 som är kopplade till en varsin led börjar lysa. och detta bör inte inträffa eftersom jag kan inte se att de blir anropade någonstans om inte knappen är nedtryckt. men då borde de bara lysa i 10sekunder men de lyser konstant hela tiden. har även testat som sagt att byta ut värdet mot x till 1 respektive 0 men får samma respons. så jag undrar om jag har skrivit fel någonstans i koden eftersom hårdvaran är testad och ska fungera.
Användarvisningsbild
Klas-Kenny
Inlägg: 11841
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av Klas-Kenny »

Du lämnar ingången flytande när knappen inte är nedtryckt, vilket förmodligen får processorn att feltrigga. För när ingången är flytande så kan processorn se den som 1 eller 0 helt slumpmässigt beroende på 1000 olika faktorer.

Så häng på ett pull-down-motstånd till ingången så fungerar det nog bättre (Du kan ta bort seriemotståndet med).
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

ok tack.

men när jag har testat runt lite och tagit bort knapp funktionen i min kod och använde bara en if sats så om jag satt värdet där till true så aktiverade den programmet men om jag satt värdet till false så startar inte programmet igång som förväntat men B5 och B1 tänds men det är allt. så jag förstår inte hur det kan inträffa eftersom det enda sättet som jag har förståt att B5 och B1 kan tändas är om programmet startar men då efter 10 sekunder så ska dom slockna men det gör dom inte så det är där som jag får problem.

så länge jag anropar programmet så funkar det men när jag säger åt den att inte anropa då blir allt kaos.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av sodjan »

> jag har kopplat så här till B4 så sitter det en knapp som är kopplat till 5v och så sitter det en resistor på 1kohm till ingången till knappen utgången är direkt kopplat till B4.


Jag får ingen ordning på det där, det skulle inte förvåna om det saknas
en eller ett par punkter och/eller komman för att få någon mening i det.
Det är samma problem med ditt senaste inlägg, det är skitdålig svenska
och svaren blir ju därefter. Det saknas även konsekvent stor bokstav
där det borde vara det.

Sannolikt har du ingen pull up/down som Klas-Kenny också gissar.
Oavsett hur det nu ser ut, ha *aldrig* öppna ingångar.

Sen så är "program" ett väldigt dåligt namn på en *funktion* i ditt program!
När du säger att "programmet startar inte" så blir det riktigt rörigt. :-)

> ...men då efter 10 sekunder så ska dom slockna

Hur vet du att de *inte* gör det?
Vad tror du händer efter att de har slocknat?
Att du inte hinner se det betyder ju inte att de inte slocknar.

> ...då blir allt kaos

"Kaos" är ingen vidare bra felbeskrivning. :-)

Men som sagt, pull up/down (beroende på hur du vill koppla knappen)
*verkar* vara lösningen, om jag har föstått kopplingen rätt.
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

Tack för alla svar ska försöka senare att fixa det här.

Jag vet redan att jag har problem med grammatik och stavning. Och har väldigt svårt att förklara hur jag gör.
H.O
Inlägg: 5917
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av H.O »

Då är mitt förslag att du lägger 5-10 minuter på att rita ett schema och ladda upp det. Om du har kopplingen på breadboard, snygga till den (om det behövs) så man kan SE hur det ÄR kopplat, ta en bild, öppna den i Paint eller liknande och lägg till pilar, förklarande text osv.
floppen
Inlägg: 109
Blev medlem: 14 september 2012, 13:28:32

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av floppen »

Ta en titt på hur du satt din WDT, Om denna är på så kanske den får dig att tro att programmet går vidare men du kanske får en reset med ca 1sek intervall.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av sodjan »

När det gäller anslutning av knappar till en PIC pinne så kan du kolla :
http://www.mcuexamples.com/push-buttons ... th-PIC.php
där det finns bra bilder och förklaringar till varför man gör som man gör.

Jag är ganska övertygad om att ditt problem är att det är felkopplat.
emilrowland
Inlägg: 145
Blev medlem: 20 april 2011, 19:14:44
Ort: Gnesta

Re: Hjälp med felsökning av kod till PIC12F683

Inlägg av emilrowland »

Hej nu har jag tagit en bild på min koppling och lagt till lite förklaringar på den.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Skriv svar