- if (startup!=0) startup--;\r
- SHT2x_MeasurePoll(HUMIDITY, &sRH);\r
- // --- measure temperature with "Polling Mode" (no hold master) ---\r
- SHT2x_MeasurePoll(TEMP, &sT);\r
- //-- calculate humidity and temperature --\r
- temperatureC = SHT2x_CalcTemperatureC(sT);\r
- humidityRH = SHT2x_CalcRH(sRH);\r
- ip=interp(temperatureC,humidityRH);\r
- pack2.ip=ip*1000;\r
- humidityRH=calibr_hum(temperatureC,-0.2,humidityRH)*10.0;\r
- //humidityRH=humidityRH*10.0;\r
- temperatureC =temperatureC *10.0-2;\r
-\r
-\r
- if (testSW()) {\r
- am2302_hum= humidityRH*10.0;\r
- am2302_temp=temperatureC*25.6;\r
- //am2302_temp=am2302_temp-45;\r
- config_info2[5]=8; \r
- }else{\r
- hhum=(1.0546-0.000216*temperatureC)*(humidityRH);\r
- //am2302_hum=0.318*hhum +76.0;\r
- am2302_hum=0.31*hhum +80;\r
- am2302_temp=temperatureC*25.6;\r
- config_info2[5]=7;\r
- }\r
- //PORTB&=~(1<<PINB1);\r
- mr=0;\r
-//Kritische Sektion !___Ein Breakpoint in dieser Section kann den TGS8100 zerstoeren!___________________________\r
- PORTB&=~(1<<PINB1); //Auf 0 Ziehen\r
- _delay_us(150);\r
- _delay_us(150);\r
- PORTB|=(1<<PINB1);\r
-//ENDE Kritische Sektion !______________________________\r
- //l=mr/2.0*2.048/4096; \r
- // l maximal 2 mr max 4096 //mr 2V=8000 \r
- \r
- if (pack2.cmode) { //cmode=0 V 0..2 V cmode=1 V 1.5..3.5V\r
- //l+=1.5; //Spannung real\r
- mr+=6000;\r
- } \r
- //if (l>1.8) {\r
- if (mr>7200) { \r
- if (pack2.cmode==0) {\r
-// MAX1164x_config(MAX1164x_S_SEL2|MAX1164x_S_SEL0,CH0_CH1);\r
- pack2.cmode=1;\r
+ if (wdcounter>0) { //8s\r
+ pack2.tol_s8++;\r
+ if (pack2.tol_s8>(10000)) {//10800 ist theortisch der Tag aber meistens zu lang\r
+ pack2.tol_s8=0;\r
+ pack2.tol_d++; //rund 180 Jahre :-)\r
+ pack2.r_week_max=0;\r
+ weekmaxarr[pack2.days_of_r0]=pack2.r_day_max;\r
+ for(uint8_t i=0;i<pack2.days_of_r0;i++) {\r
+ weekmaxarr[i]=weekmaxarr[i+1];\r
+ //maximum of week\r
+ if (weekmaxarr[i]>pack2.r_week_max) pack2.r_week_max=weekmaxarr[i];\r
+ }\r
+ if (pack2.tol_d>7) {\r
+ pack2.R0=pack2.r_week_max;\r
+ } else {\r
+ pack2.R0=pack2.r_day_max;\r
+ }\r
+ //R0=//R0-0.5*(pack2.R0/100-R0);\r
+ R0=R0-(R0-pack2.R0/100.0)*0.5 ;\r
+ pack2.R0=R0*100;\r
+ writeEEPROM(EEPROM_R0,pack2.R0);\r
+ writeEEPROM(EEPROM_R0d,pack2.r_day_max); //Maximum des Tages\r
+ writeEEPROM(EEPROM_R0w,pack2.r_week_max); //Maximum der Letzten 7 Tage\r
+ writeEEPROM(EEPROM_dol,pack2.tol_d); //Anzahl der Betriebstage\r
+ pack2.r_day_max=0;\r