Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

double kullanımı

Başlatan erhanmete, 27 Eylül 2011, 09:45:46

erhanmete

MS5803 için örnek uygulamayı inceliyorum, fakat benim kullandığım derleyici double değişken kullanmıyor.

aşağıdaki örneği nasıl kullanabilirim. matematik de biraz zayıf. bir türlü beceremedim.


unsigned long D1; // ADC value of the pressure conversion
 unsigned long D2; // ADC value of the temperature conversion
 unsigned int C[8]; // calibration coefficients
 double P; // compensated pressure value
 double T; // compensated temperature value
 double dT; // difference between actual and measured temperature
 double off; // offset at actual temperature
 double SENS; // sensitivity at actual temperature
 int i;
 unsigned char n_crc; // crc value of the prom



    
    D1=cmd_adc(CMD_ADC_D1+CMD_ADC_256); // read uncompensated pressure
    D2=cmd_adc(CMD_ADC_D2+CMD_ADC_4096); // read uncompensated temperature
    // calcualte 1st order pressure and temperature (MS5607 1st order algorithm)
    dT=D2-C[5]*pow(2,8);
    off=C[2]*pow(2,17)+dT*C[4]/pow(2,6);
    SENS=C[1]*pow(2,16)+dT*C[3]/pow(2,7);
    T=(2000+(dT*C[6])/pow(2,23))/100;
    P=(((D1*SENS)/pow(2,21)-off)/pow(2,15))/100;
    
    
    
    // place to use P, T, put them on LCD, send them trough RS232 interface...




D1,D2 ve C değişkenlerini sensörden düzgün okuyorum ama çevrim kısmını istediğim hale getiremedim.

Tagli

double yerine float kullanmayı dene. Elbette hassasiyet düşük olacaktır.
Gökçe Tağlıoğlu