Home › FORUM › 2006-03 FPGA-module › 4 kanaals voltmeter in deel 3

FORUM

Log in om antwoord te posten of de notificatie-service te gebruiken.

Onderwerp: 4 kanaals voltmeter in deel 3

Author Post

Sparky51

50 berichten

Op bezoek
Op bezoek

Read post 20-08-2006 02:22


Als ik het voorbeeld van deel 3, de 4-kanaals voltmeter, uitprobeer werken alleen de eerste twee ingangen.
De derde en vierde ingang geven constant 0.01V op het LCD en reageren niet op de ingangen.

Ik heb twee aanpassingen uitgeprobeerd in firmware.c waarmee het wel werkt.

De eerste is:

Er worden twee nieuwe variabelen gedeclareerd:

unsigned int adr2;
unsigned int adr3;

En het "// convert the conversion results and print these to the LCD" deel wordt alsvolgt gewijzigd:

sprintf(strbuf,"1: . V 2: . V ");
adr2=convert_ad_to_volt(ad2);
adr3=convert_ad_to_volt(ad3);
print_voltage (strbuf,convert_ad_to_volt(ad0),2);
print_voltage (strbuf,convert_ad_to_volt(ad1),10);
LCD_write_line (strbuf,0);
sprintf(strbuf,"3: . V 4: . V ");
print_voltage (strbuf,adr2,2);
print_voltage (strbuf,adr3,10);
LCD_write_line (strbuf,1);

De tweede is:

De code die voor de ingangen een en twee wordt gebruikt ook gebruiken voor de derde en vierde ingang:

sprintf(strbuf,"1: . V 2: . V ");
print_voltage (strbuf,convert_ad_to_volt(ad0),2);
print_voltage (strbuf,convert_ad_to_volt(ad1),10);
LCD_write_line (strbuf,0);
sprintf(strbuf,"3: . V 4: . V ");
print_voltage (strbuf,convert_ad_to_volt(ad2),2);
print_voltage (strbuf,convert_ad_to_volt(ad3),10);
LCD_write_line (strbuf,1);

Wat ik mij afvraag; werkt de originele code bij anderen wel, ik heb hier nog niets over op het forum gelezen.

Hans

nutson

7 berichten

Op bezoek
Op bezoek

Read post 22-08-2006 13:16

Je hebt gelijk, het programma regeert niet op analoge ingang 2 en 3. Zodra ik met de voorbeelden uit het september numer aan de gang ga, zal ik je patch proberen

Nico

eightdot

5 berichten

Op bezoek
Op bezoek

Read post 02-09-2006 12:12

ik heb het zelfde probleem... de oorzaak is dat ad2 en ad3 een unsigned char zijn en dat convert_ad_to_volt een unsigned int teruggeeft in de order groote van 10000 per volt (1 = 0,1 mv) een unsigned char = maximaal 255 dus 25,5 mV = 0.025V en aangezien print_voltage naar beneden afrond geeft het display maximaal 0.02V aan (de gemeten waarde modulo 25,6 mV

Log in om antwoord te posten of de notificatie-service te gebruiken.

Lid worden

Payoff

Gratis Elektor@POST

Elektor wekelijks lezen:

Met Elektor@POST steeds het laatste nieuws uit de elektronicawereld.

Direct aanmelden >>>

Volg ons ook op:

      

Elektor Events

Speciale producten

Direct doen

Nu in prijs verlaagd

Elektor OSPV1

Tijdelijk € 210,- korting!

Dit zelfbalancerende indoor voertuig is ideaal voor bijvoorbeeld fabriekshal, magazijn of school.