ADC med PIC 16F873 HJÆLP !!!

hej

Er igang med at lave et lille projekt med en PIC16F873 som har 5 analoge indgange.

Jeg har det problem at jeg ikke kan få den til at læse spændingen rigtigt. Der sker det at spændingen er 1/3 af det den skulle være. Det vil sige at den viser ca. 1.2 V når man med et multimeter måler 4.5V. Hvis man så hæver spænding fra 4.5 til 5V så springer den vildt hurtigt på det sidste stykke.

Her er mit C- program. Det eneste jeg kan skyde på må være galt er noget med Right eller Left justifikation i PIC'en eller er der andre der har et foreslag?

Der sidder et VFD display på til udlæsningen og jeg sender spænding ind på CH2.

----------------------------------------------------------------------------

------ #include #include #include #include #include

bank1 unsigned char text [20]; // Array til tekst på diplay

int temp; double temp1 ,temp2;

void lcd() { int i; for (i=0; i

Reply to
Tom
Loading thread data ...

Hvad gør du med ch1 og ch2 herover? Det ser ikke rigtigt ud.

/Bo.

Reply to
Bo Braendstrup

spænding

Det er kun for at se af low og high byte fra AD konverteren på mit display (midlertidig).

-- Tom

Reply to
Tom

Jamen, senere udlæser du med:

temp1 = (5.0 / 1023.0) * ch1; // konverter de 16 bit til en spænding 0-5 Volt temp2 = (5.0 / 1023.0) * ch2; sprintf(text, "%d %d", ch1, ch2); lcd();

og i kanal2 rutinen øverst har du erstattet (ADRESH * 256) + ADRESL med ADRESL.

Har du så ikke over skrevet dine variabler for kanal1 og kanal2?

Jeg er IKKE en haj til C, som det sikkert kan ses af ovenstående :o)

/Bo.

Reply to
Bo Braendstrup

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.