We zitten hier met 2 man al een tijdje te werken op een probleem. Zoals de titel zegt, het omzetten van een float naar het type char.
Waarom zo'n conversie? nou we zijn hier aan het werk met een atmega32 microprocessor. Om het EEPROM te kunnen schrijven moet je karakter voor karakter de data naar het EEPROM schrijven. Dit doen we doormiddel van een array van chars.
Zou je echter een float als een array aanspreken, krijg je de binaire representatie van een float, dus een heleboel onbruikbare rommel, zoals het sign bit, de exponent en de mantissa. Wat 32 bits lang is.
We hebben verschillende malen de search gebruikt, maar dit heeft in niets geresulteerd. O.a functies die we geprobeerd hebben zijn:
- sprintf, maar dit gaat niet op voor floats
- g_snprintf hierbij kan de compiler de benodigde library glib.h niet vinden
en of dit het gewenste resultaat oplevert is bij ons ook niet bekend.
-char *fcvt();
str = fcvt(value,length,decimal,sign); heeft ook niets opgeleverd
Zelf een algoritme schrijven om een float uit te gaan lezen en omrekenen naar leesbare taal lijkt mij een beetje overdreven. Er is vast wel een standaard functie voor, wij hebben deze echter nog niet kunnen vinden.
K hoop dat er iemand een oplossing weet.
Waarom zo'n conversie? nou we zijn hier aan het werk met een atmega32 microprocessor. Om het EEPROM te kunnen schrijven moet je karakter voor karakter de data naar het EEPROM schrijven. Dit doen we doormiddel van een array van chars.
Zou je echter een float als een array aanspreken, krijg je de binaire representatie van een float, dus een heleboel onbruikbare rommel, zoals het sign bit, de exponent en de mantissa. Wat 32 bits lang is.
We hebben verschillende malen de search gebruikt, maar dit heeft in niets geresulteerd. O.a functies die we geprobeerd hebben zijn:
- sprintf, maar dit gaat niet op voor floats
- g_snprintf hierbij kan de compiler de benodigde library glib.h niet vinden
-char *fcvt();
str = fcvt(value,length,decimal,sign); heeft ook niets opgeleverd
Zelf een algoritme schrijven om een float uit te gaan lezen en omrekenen naar leesbare taal lijkt mij een beetje overdreven. Er is vast wel een standaard functie voor, wij hebben deze echter nog niet kunnen vinden.
K hoop dat er iemand een oplossing weet.