|
发表于 2013-3-9 18:09:01
|
显示全部楼层
楼主 向您咨询下:
代码复制您的:
unsigned long currentMillis;
boolean goloop=true;
partMillis=0;
unsigned long duration1_0=0;
unsigned long duration2_5=0;
long temp1_0=0;
long temp2_5=0;
while(goloop) //loop
{
currentMillis = micros();
if(currentMillis<previousMillis)
{
partMillis = 4294967295 - previousMillis +1;
previousMillis = 0;
}
if(currentMillis - previousMillis - partMillis < mintev)
{
//1.0
if(temp1_0==0)
{
temp1_0=-1;
temp1_0=pulseIn(DSMPin1_0, LOW);
}
if(temp1_0>0)
{
duration1_0 =duration1_0 + temp1_0;
temp1_0=0;
}
//2.5
if(temp2_5==0)
{
temp2_5=-1;
temp2_5=pulseIn(DSMPin2_5, LOW);
}
if(temp2_5>0)
{
duration2_5 =duration2_5 + temp2_5;
temp2_5=0;
}
}
else
{
goloop=false;
previousMillis=currentMillis;
}
}
Serial.println("duration1_0:");
Serial.println(duration1_0);
Serial.println("duration2_5:");
Serial.println(duration2_5);
double per =double(duration1_0)/double(interval);// had multiply 1000
int pcs1_0 = -1;
pcs1_0 = per * 50.0;
per =double(duration2_5)/double(interval);// had multiply 1000
int pcs2_5 = -1;
pcs2_5 = per * 50.0;
Serial.println("PM2.5:");
Serial.println(pcs2_5);
Serial.println("PM1.0:");
Serial.println(pcs1_0);
为什么最后的数据是:
PM2.5:
14248
PM1.0:
14543
|
|