Sida 1 av 1
Problem voltmeter
Postat: 11 oktober 2009, 18:52:17
av Björne
Har problem med min kod som var tänkt att bli en enkel 0-5V voltmeter.
När jag skriver ut resultatet (ADCValue) på datorn via Usart så får jag ett värde mellan 0 till ca 65535 (2^16) för 0 till 5V. Förstår inte riktigt vad jag gör fel.
Det borde ju bli ett värde mellan 0-1023 för att jag använde 10-bit A/D, eller tänker jag helt fel?
Det är en PIC16f886 och ADCValue är en unsigned int.
Kod: Markera allt
//A/D på porta 3
TRISA3 = 1; //input
ANS3 = 1; //Analog input
CHS0 = 1; //AN3
CHS1 = 1; //AN3
CHS2 = 0; //AN3
CHS3 = 0; //AN3
VCFG0 = 0; //VDD
VCFG1 = 0; //VSS
ADCS0 = 0; //Fosc/2
ADCS1 = 0; //Fosc/2
ADFM = 1; // 1=Right justified
DelayMs(1);
ADON = 1; //Start
Kod: Markera allt
for(i= 0;i<100;i++)
{
ADCValue = 0;
ADRESL = 0;
ADRESH = 0;
GODONE = 1;
while (GODONE);
ADCValue = (ADRESH<<8)|ADRESL;
printf ("\r Test: %u \n", ADCValue);
DelayMs(1);
}
tack för hjälpen

Re: Problem voltmeter
Postat: 11 oktober 2009, 19:02:15
av sodjan
Om du gör :
ADCValue = (ADRESH * 256) + ADRESL;
spelar det någon roll ?
Får du hopp med 64 steg i resultatat ?
D.v.s som om det var vänsterjusterat ?
Re: Problem voltmeter
Postat: 11 oktober 2009, 19:13:33
av Björne
Tack för snabbt svar.
jag testa med ADCValue = (ADRESH * 256) + ADRESL; men det blev ingen skillnad, testa även med både höger och vänsterjusterat.
Kan tillägga att jag använder HI-TECHs usart kod, om det kan hjälpa.
Re: Problem voltmeter
Postat: 11 oktober 2009, 19:25:50
av sodjan
> testa även med både höger och vänsterjusterat.
Och ?
Tja, då är det väl bara att börja felsöka...
Vad har du gjort för felsökning innan du kastade dig över forumet ?
Re: Problem voltmeter
Postat: 12 oktober 2009, 17:00:32
av Björne
Problemet är nu löst.
>Vad har du gjort för felsökning innan du kastade dig över forumet ?
Några timmar med att testa olika koder samt kolla över uppkopplingen.
Men jag stirra mig nog blind igår, för idag hitta jag felet direkt.
Hade glömt att avmarkera en kod bit som ändra tillbaka PORTA 3 till digital igen.
Tack för hjälpen.
Re: Problem voltmeter
Postat: 12 oktober 2009, 18:30:36
av sodjan
Det var inte med något sådant i koden du visade.
Postade du någon annan kod än den du hade problem med ?
Re: Problem voltmeter
Postat: 12 oktober 2009, 18:45:12
av Björne
>Postade du någon annan kod än den du hade problem med ?
JA.
Jag posta den koden jag trodde var felaktig, men nu inte var fallet.
Felet var gammal kod som jag hade avmakerad, men missat en rad. Därav tog jag inte med den koden.
Re: Problem voltmeter
Postat: 12 oktober 2009, 19:32:53
av sodjan
OK.
Lärdomen är alltså att vara lite noggrannare med "problemkod" som postas...

Om du hade rensat upp koden (d.v.s plockat bort de rader som du hade kommenterat
inkl den rad som du *trodde* att du hade kommenterat) så hade det ju fungerat
redan innan du postade...

Försök alltid att fixa en "reproducer", d.v.s en snutt
som visar exakt det problem man har, men inget mer.
Re: Problem voltmeter
Postat: 12 oktober 2009, 19:36:33
av Björne
Tack för det orden.
Ska tänka på detta till nästa gång.
Re: Problem voltmeter
Postat: 12 oktober 2009, 19:43:55
av sodjan
Varsågod, det är ju inte raketvetenskap direkt.

D.v.s att kolla sin kod en extra gång innan man postar...
Och just att inte bygga ett inlägg på "gammal" kod som man har
ändrat fram och tillbaka i flera gånger innan utan att ransa upp
och fixa ett klart och tydligt test-case som visar just det problem
man frågar om, är ju en standardåtgärd i stort sätt. I 9 fall av 10
så hittar man även sitt fel under tiden som man rensar koden...
Kolla gärna även :
http://elektronikforumet.com/forum/view ... =12&t=6057
där det finns lite rent almänna tips vid start av en ny tråd.