![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
tokuni
Diff: main.cpp
- Revision:
- 1:b647fdc5a465
- Parent:
- 0:c168443703fb
- Child:
- 2:06322e6e403b
--- a/main.cpp Tue Dec 23 06:16:39 2014 +0000 +++ b/main.cpp Thu Jan 22 13:39:46 2015 +0000 @@ -3,25 +3,19 @@ AnalogIn tempPin1(p15); AnalogIn tempPin2(p16); AnalogIn tempPin3(p17); -AnalogIn tempPin4(p18); PwmOut pwm1(p21); PwmOut pwm2(p22); -#define start 500 -#define end 2000 float tempTotal1; float tempTotal2; float tempTotal3; -float tempTotal4; uint32_t tempDiv1; uint32_t tempDiv2; uint32_t tempDiv3; -uint32_t tempDiv4; #define MAX_TEMP_AVG 10 void sampleTemp(); void sampleTemps(); void resetTempSamples(); float getAvgTemp(); - void sampleTemp() { tempTotal1 += tempPin1; @@ -30,8 +24,7 @@ tempDiv2++; tempTotal3 += tempPin3; tempDiv3++; - tempTotal4 += tempPin4; - tempDiv4++; + } void sampleTemps() { @@ -48,64 +41,59 @@ tempDiv2 = 0; tempTotal3 = 0.0; tempDiv3 = 0; - tempTotal4 = 0.0; - tempDiv4 = 0; + } float getAvgTemp1() { resetTempSamples(); sampleTemps(); - float tempAvg1 = (((tempTotal1)*3300/(float)tempDiv1)-400.0)/19.5; + float tempAvg1 = ((((tempTotal1)*3300/(float)tempDiv1)-400.0)/19.5); return tempAvg1; } float getAvgTemp2() { resetTempSamples(); sampleTemps(); - float tempAvg2 = (((tempTotal2)*3300/(float)tempDiv2)-400.0)/19.5; + float tempAvg2 = (((((tempTotal2)*3300/(float)tempDiv2)-400.0)/19.5)-1); return tempAvg2; } float getAvgTemp3() { resetTempSamples(); sampleTemps(); - float tempAvg3 = (((tempTotal3)*3300/(float)tempDiv3)-400.0)/19.5; + float tempAvg3 = (((((tempTotal3)*3300/(float)tempDiv3)-400.0)/19.5)); return tempAvg3; } -float getAvgTemp4() -{ - resetTempSamples(); - sampleTemps(); - float tempAvg4 = (((tempTotal4)*3300/(float)tempDiv4)-400.0)/19.5; - return tempAvg4; -} int main() { - tempDiv1 = 0; tempDiv2 = 0; - tempDiv3 = 0; - tempDiv4 = 0; - int a,b; + tempDiv3 = 0; pc.printf("MBED ready..\r\n"); - sampleTemps(); + sampleTemps(); while(1){ sampleTemp(); - float k=getAvgTemp1()-getAvgTemp2(); - float i=getAvgTemp3()-getAvgTemp4(); - pc.printf("Temp1:%f\nTemp2:%f\n",getAvgTemp1(),getAvgTemp2()); - pc.printf("Temp3:%f\nTemp4:%f\n",getAvgTemp3(),getAvgTemp4()); - a = k * 2; - b = i * 2; - { - for(int p = start; p < end; p += a) - pwm1.pulsewidth_us(p); - wait_ms(10); - } - { - for(int q = start; q < end; q += b) - pwm2.pulsewidth_us(q); - wait_ms(10); - } -} -} \ No newline at end of file + pc.printf("T2=%f T1=%f T3=%f\n",getAvgTemp2(),getAvgTemp1(),getAvgTemp3()); // T1,T2,T3 + if(getAvgTemp1()>getAvgTemp2()||getAvgTemp1()>getAvgTemp3()){ + wait_ms(4000); + }else if(getAvgTemp2()-getAvgTemp1()>0.5||getAvgTemp1()-getAvgTemp3()>0.5){ + for(int i = 0; i <=200; i++){ + pwm1.pulsewidth_us(2000-i*5); + pwm2.pulsewidth_us(2000-i*5); + wait_ms(4000); + } + }else(getAvgTemp3()>getAvgTemp1()||getAvgTemp1()>getAvgTemp2()){ + for(int i = 0; i <=200 ; i++){ + pwm1.pulsewidth_us(1000+i*5); //xia max 2000 + pwm2.pulsewidth_us(1000+i*5); //shang max 2000 + wait_ms(4000); + }if(i == 200){ //xia shang tong shi 2000 + for(int i = 0; i <=200; i++){ + pwm1.pulsewidth_us(2000+i*5); //xia 1500+max1000 = 3000 + pwm2.pulsewidth_us(2000-i*5); //shang 2000-max1000 = 1000 + wait_ms(4000); + } + } + + +}