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;
} |
Partager