Göra ADC beräkningar med PIC 12F675

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
labmaster
Inlägg: 2919
Blev medlem: 5 april 2011, 01:10:25

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av labmaster »

Med du menar du säkert inte mig newbadboy men jag svarar ändå JA på din fråga.

If-satser och villkor är alltid knepiga att hantera och skall man fråga någon måste den man frågar ha en klar bild hur if-kedjan ser ut. Jag har inte kollat igen men jag har för mig att din kod du postade var rejält "övertabbad" och de olika if-satserna innehöll samtidigt en massa programkod.

Det blir enklare för den som skall hjälpa till om du bara postar if-kedjan inklusive mås-parenteserna ty innehållet inom varje mås-parentes är ganska ointressant när man bara skall analysera en kedja med if-then-else. Det blir så att säga fokus på rätt sak i frågeställningen.

Hur som helst, med single step i en debugger tror jag att du hade hittat detta fel helt på egen hand. När jag utvärderar en utvecklingsplattform och tillhörande mikroprocessorer så försöker jag få en helhetsbild av hela utvecklingsplattformen. Finns det ingen bra debugger så åker plattformen som jag tittar på rakt ned i papperskorgen. Det är viktigt att notera att det är source-code debugger jag menar och inget annat. Detta betyder att det skall gå att single steppa i C-koden direkt. Helst skall plattformen klara att köra debuggern både i simulator och i mål-CPU:n (taget mode).
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av jesse »

Jag säger också Ja. :)
ty innehållet inom varje mås-parentes är ganska ointressant
Ibland kan det ju vara intressant.

I det här fallet så fanns det ju tre satser (A,B,C), varav den tredje satsen återställde vad den första satsen gjorde. Och på så vis undrarde TS varför den första satsen aldrig utfördes. Men det gjorde det (RELÄ = 1) . Problemet var att ungefär tt par miljondels sekunder senare så säger sats tre att RELÄ = 0.... Sats tre vinner eftersom den utfördes senast.

Eller så utförs både A och C i snabb följd efter varandra så fort att när du mäter på utgången så får du 2.5 volt, inte 0V eller 5V.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av newbadboy »

Ahhh finally har jag fattat. tack för hjälpen.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av jesse »

Personligen så använder jag inte följden if() ... else if() ... else eftersom det är så lätt att läsa fel.

Jag hade skrivit:

Kod: Markera allt

if (AA || BB) RELAY =1;
else RELAY = 0;
(Okej, jag kör inte alltid måsparenteser om det bara finns en sats...)

eller så här:

Kod: Markera allt

if (AA)
{
    RELAY = 1;
}
else
{
    if (BB) RELAY = 2;
    else RELAY = 0;
}
labmaster
Inlägg: 2919
Blev medlem: 5 april 2011, 01:10:25

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av labmaster »

Jag vill inte på något sätt vara obstinat mot Jesse men grundregeln är att aldrig lita på någon annans transformering av villkorsstyrda programsatser.

I grund och botten handlar det om att förstå vad datorn gör med den programkod man skriver och då duger det inte att köpa det andra säger rakt av utan att själv vara övertygad om att det fungerar rubricerad transformering av villkorsstyrda programsatser. Med andra ord lär dig att göra sådana transformeringar själv.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av newbadboy »

Som sagt, jag har fått rätt på koden. Den gör vad jag vill att den ska göra samt har fått klart i vad jag hade gjort fel innan. Nu tänkar jag släppa detta för jag vill inte strula till det för mycket. Som nybörjare vill man bara lära sig det nödvändiga.. sen får resten komma. tack för hälpen så länge. Kommer säkert fler frågor efterhand :)
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Göra ADC beräkningar med PIC 12F675

Inlägg av jesse »

labmaster: Givetvis, håller med. Men mina exempel var bara för att visa på hur man kan skriva det hela på ett något mer läsbart sätt (då if - else if - else kan bli lite förvirrande). Sen måste man givetvis ändå förstå hur det fungerar. Att lägga in logiska operatorer i if-satser tycker jag ofta är ett smidigt sätt att förenkla på. dvs || && och !
Skriv svar