X-Git-Url: http://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=DS18B20_VOC_DS2438_SHT%2FDS18B20_DS2438.c;fp=DS18B20_VOC_DS2438_SHT%2FDS18B20_DS2438.c;h=8e042998dd7debd441379a4f88aa9940a76bece1;hp=3e1aafc465797ac7af501bde4b1798aaa47570bb;hb=1624c8ce9acb762d2cdc0b2f6b064448561ff752;hpb=1e73b685ab7090435813defd9844a1d61e1fb909 diff --git a/DS18B20_VOC_DS2438_SHT/DS18B20_DS2438.c b/DS18B20_VOC_DS2438_SHT/DS18B20_DS2438.c index 3e1aafc..8e04299 100644 --- a/DS18B20_VOC_DS2438_SHT/DS18B20_DS2438.c +++ b/DS18B20_VOC_DS2438_SHT/DS18B20_DS2438.c @@ -31,6 +31,8 @@ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +//!!!!!Max Program size 7551 Byte + #define F_CPU 8000000UL #include #include @@ -132,7 +134,7 @@ typedef union { uint8_t page5[8]; //41 uint8_t page6[8]; //49 uint8_t page7[8]; //57 - //uint8_t crc; //65 + #endif }; } pack2_t; @@ -158,6 +160,7 @@ uint8_t max_adr=0; uint16_t weekmaxarr[8]; +//Kompensieren der Abhänigkeit von RS/RO von Temperatur und Luftfeuchte inline double interp(double t, double h) { double h2; double t2; @@ -171,6 +174,27 @@ uint16_t mr; uint8_t startup=10; double ip; + +int testSW(void) { + uint8_t r; + DDRB&=~(1<pack2.r_week_max) pack2.r_week_max=weekmaxarr[i]; } if (pack2.tol_d>7) { @@ -297,7 +325,8 @@ int main(void){ } else { pack2.R0=pack2.r_day_max; } - R0=pack2.R0/100.0-0.5*(pack2.R0/100-R0); + //R0=//R0-0.5*(pack2.R0/100-R0); + R0=R0-(R0-pack2.R0/100.0)*0.5 ; pack2.R0=R0*100; writeEEPROM(EEPROM_R0,pack2.R0); writeEEPROM(EEPROM_R0d,pack2.r_day_max); //Maximum des Tages @@ -314,21 +343,31 @@ int main(void){ humidityRH = SHT2x_CalcRH(sRH); ip=interp(temperatureC,humidityRH); pack2.ip=ip*1000; - humidityRH=calibr_hum(temperatureC,-0.45,humidityRH)*10.0; + humidityRH=calibr_hum(temperatureC,-0.2,humidityRH)*10.0; //humidityRH=humidityRH*10.0; - temperatureC =temperatureC *10.0-4.5; - hhum=(1.0546-0.000216*temperatureC)*(humidityRH); - am2302_hum=0.318*hhum +76.0; - am2302_temp=temperatureC*25.6; + temperatureC =temperatureC *10.0-2; + + + if (testSW()) { + am2302_hum= humidityRH*10.0; + am2302_temp=temperatureC*25.6; + //am2302_temp=am2302_temp-45; + config_info2[5]=8; + }else{ + hhum=(1.0546-0.000216*temperatureC)*(humidityRH); + //am2302_hum=0.318*hhum +76.0; + am2302_hum=0.31*hhum +80; + am2302_temp=temperatureC*25.6; + config_info2[5]=7; + } //PORTB&=~(1<pack2.r_day_max) { pack2.r_day_max=l*100; } - } - l=l/R0; - l=log(1/l); + } else if (l500) { - // l=100; - // } wdcounter=0; }