Decimale waardes op TFT

Arduino specifieke Software
Berichten: 24
Geregistreerd: 01 Sep 2013, 13:00

Decimale waardes op TFT

Berichtdoor benovitch » 15 Nov 2015, 12:25

Nu het probleem met het Weergeven van de sensor waardes op het TFT scherm opgelost zijn kom ik een ander probleem tegen.
In de sketch zit een waarde 'kalibratie factor' van de weegschaal sensors. Deze waarde is een float decimaal getal met 2 cijfers na de komma. Om de float waarde weer te geven gebruik ik de 'ITOA' functie. Enkel hier komen enkel de cijfers voor de komma er op. Hoe doe ik nu de cijfers na de komma?

Ben

Advertisement

Berichten: 24
Geregistreerd: 01 Sep 2013, 13:00

Re: Decimale waardes op TFT

Berichtdoor benovitch » 15 Nov 2015, 12:41

Weer veel te snel geweest. Heb het ondertussen zelf gevonden denk ik.
In de originele code waarmee ik begonnen ben stond het volgende voor een batterijspanning weer te geven:
Code: Alles selecteren
void decimate(char test[],int dec) {  // creates decimal function  decimate(string containing integer, number of decimal places)

 int i=0; 
 int length=strlen(test);
 char msg[10]="";

 strcpy(msg,test);

 if (length <= dec) {
   for(i=dec;i>(dec-length);i--)  msg[i] = msg[i-(dec-length+1)];
   for(i=0;i<(dec+1-length);i++)  msg[i]='0';
   length = strlen(msg);
 }
 for (i=length;i>(length-dec);i--)  msg[i]=msg[i-1];
 msg[length-dec]='.';

 strcpy(test,msg);
}


Wanneer ik dan het volgende schreef:
Code: Alles selecteren
  itoa(calibration_factor_LA,LaCal, 10);
  decimate(LaCal, 2);


kreeg ik de originele waarde '219' op de tft maar dan '2,19'.

Nu heb ik ff geprobeerd of het volgende ging en getest. Heb de 'calibration_factor_LA' vrmenigvuldigd met 100 en daarna weer decimate gedaan.

Code: Alles selecteren
  itoa((calibration_factor_LA*100),LaCal, 10);
  decimate(LaCal, 2);


vlug ff getest en dat werkte dus ik denk dat het opgelost is.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: alajowapopimi en 80 gasten