Witam.
Mam pewien problem związany z konwersją zmiennej short do float.
Moim zamiarem jest przeliczenie wartości z przetwornika AD na pewną wartość w postaci float.
Schody zaczynają się na początku. Puki wartość ADC_out nie przekroczy 700 wszystko jest OK(ADCoutFLT przyjmuje wartość ADC_out). Powyżej 700, ADCoutFLT przyjmuje wartość 5130.
A dziej się to w ten sposób:
gdzie:
ADC_out - unsigned short
ADCout_FLT - float
Pogrzebałem po forum i znalazłem coś o cast'owaniu.
Niestety to tez nie pomogło
Co może być nie tak?
Mam pewien problem związany z konwersją zmiennej short do float.
Moim zamiarem jest przeliczenie wartości z przetwornika AD na pewną wartość w postaci float.
Schody zaczynają się na początku. Puki wartość ADC_out nie przekroczy 700 wszystko jest OK(ADCoutFLT przyjmuje wartość ADC_out). Powyżej 700, ADCoutFLT przyjmuje wartość 5130.
A dziej się to w ten sposób:
ADCL_tmp=ADCL;
ADCH_tmp=ADCH;
ADC_out=ADCH_tmp;
ADC_out=(ADC_out<<8)+ADCL_tmp;
ADCoutFLT = ADC_out;
gdzie:
ADC_out - unsigned short
ADCout_FLT - float
Pogrzebałem po forum i znalazłem coś o cast'owaniu.
Niestety to tez nie pomogło
float ADCoutFLT = (float)ADC_out;
Co może być nie tak?