Convert Float to Array Int Arduino



This is Class convert Float to Array Int & Array Int to Float in Arduino

/****************************************************************************/

#ifndef FLOATCONVERT_H
#define FLOATCONVERT_H
#include <Arduino.h>

class FloatConvert
{
private:
union Pun {float f; uint32_t u;};
public:
uint16_t *encodeFloat(float x);
float decodeFloat(uint16_t regs_1, uint16_t regs_2);
};

#endif

/******************************************************************************/
uint16_t *FloatConvert::encodeFloat(float x)
{
uint16_t *regs = new uint16_t[2];
union Pun pun;

pun.f = x;
regs[1] = (pun.u >> 16) & 0xFFFFU;
regs[0] = pun.u & 0xFFFFU;
return regs;
}

float FloatConvert::decodeFloat(uint16_t regs_1, uint16_t regs_2)
{
union Pun pun;

pun.u = ((uint32_t)regs_2 << 16) | regs_1;
return pun.f;
}
/****************************************************************************/

No comments:

Post a Comment