Problème avec chaine de caractères
Bonjour,
je débute en C
Je suis entrain de créer une fonction qui récupère n caratères, les transforme en float ,les formate puis retourne 2 caractères afin d'être envoyés sur le RS232 (LSB en tête). mais malheureusement j'ai l'impression que seul le premier caratère est retourné à main.
Il y a t-il un moyen pour avoir les 2 caractères du premier coup sans faire appel à la fonction 2 fois: une pour le LSB et l'autre pour le MSB.
j'espère avoir été clair dans mon explication.
Merci d'avance.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
char Gauge_Bank(char Data[])// fonction traitement signal
{
float fVario = atof(Data);// Caratères signal en Float
char Var[2]; //variable qui contiendra les 2 caratères LSB et MSB
float fVarioSin;
/************************************************/
/**Formate les données-----> compatible PWM******/
/************************************************/
fVarioSin = sin(fVario) + 1;
fVario = (2800 * (fVarioSin)) + 59400;
if (fVario > 62800)
{
fVario = 62800;
}
else if (fVario < 61600)
{
fVario = 61600;
}
/***************************************************/
int wVario = fVario;
Var[0] = wVario % 256; //LSB
Var[1] = (wVario / 256) % 256; //MSB
return *Var; //retourne normalement 2 caratères
}
int main(int argc, char *argv[])
{
char data[20]="1.415585";
char Bank[2];
*Bank = Gauge_Bank(data); //--> Problème, Bank ne contient que le premier caractère
return 0;
} |