EasyManuals Logo

CG emotron TSA Series User Manual

CG emotron TSA Series
204 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #146 background imageLoading...
Page #146 background image
142 Serial communication CG Drives & Automation 0-5980-01r2
Programming example:
typedef struct
{
int m:11; // mantissa, -1024..1023
int e: 4; // exponent -8..7
unsigned int f: 1; // format, 1->special emoint format
} eint16;
//---------------------------------------------------------------------------
unsigned short int float_to_eint16(float value)
{
eint16 etmp;
int dec=0;
while (floor(value) != value && dec<16)
{
dec++; value*=10;
}
if (value>=0 && value<=32767 && dec==0)
*(short int *)&etmp=(short int)value;
else if (value>=-1000 && value<0 && dec==0)
{
etmp.e=0;
etmp.f=1;
etmp.m=(short int)value;
}
else
{
etmp.m=0;
etmp.f=1;
etmp.e=-dec;
if (value>=0)
etmp.m=1; // Set sign
else
etmp.m=-1; // Set sign
value=fabs(value);
while (value>1000)
{
etmp.e++; // increase exponent
value=value/10;
}
value+=0.5; // round
etmp.m=etmp.m*value; // make signed
}
Rreturn (*(unsigned short int *)&etmp);
}
//---------------------------------------------------------------------------
float eint16_to_float(unsigned short int value)
{
float f;
eint16 evalue;
evalue=*(eint16 *)&value;
if (evalue.f)
{
if (evalue.e>=0)
f=(int)evalue.m*pow10(evalue.e);
else
f=(int)evalue.m/pow10(abs(evalue.e));
}
else
f=value;
return f;
}
//---------------------------------------------------------------------------

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the CG emotron TSA Series and is the answer not in the manual?

CG emotron TSA Series Specifications

General IconGeneral
BrandCG
Modelemotron TSA Series
CategoryController
LanguageEnglish

Related product manuals