jyo tetsu
/
temp
tokuni
main.cpp
- Committer:
- changzhe8387
- Date:
- 2014-12-23
- Revision:
- 0:c168443703fb
- Child:
- 1:b647fdc5a465
File content as of revision 0:c168443703fb:
#include "mbed.h" Serial pc(USBTX, USBRX); 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; tempDiv1++; tempTotal2 += tempPin2; tempDiv2++; tempTotal3 += tempPin3; tempDiv3++; tempTotal4 += tempPin4; tempDiv4++; } void sampleTemps() { for(int i=0;i<MAX_TEMP_AVG;i++) { sampleTemp(); wait(0.1); } } void resetTempSamples() { tempTotal1 = 0.0; tempDiv1 = 0; tempTotal2 = 0.0; 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; return tempAvg1; } float getAvgTemp2() { resetTempSamples(); sampleTemps(); float tempAvg2 = (((tempTotal2)*3300/(float)tempDiv2)-400.0)/19.5; return tempAvg2; } float getAvgTemp3() { resetTempSamples(); sampleTemps(); 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; pc.printf("MBED ready..\r\n"); 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); } } }