|
|
本帖最后由 lilho_e2 于 2017-2-3 20:55 编辑
用tme1中断产生方波,用pulseIn检测
结果检测到的方波和设置的有很大的出入
代码如下:
#include "TimerOne.h"
unsigned long durationH, durationL;
unsigned long timeout;
int pin = 2;
void setup()
{
Serial.begin(9600);
pinMode(pin, INPUT);
pinMode(10, OUTPUT);
Timer1.initialize(100);
Timer1.attachInterrupt(callback);
timeout = millis();
}
void callback()
{
digitalWrite(10, digitalRead(10) ^ 1);
}
void loop()
{
durationH = pulseIn(pin, HIGH);
durationL = pulseIn(pin, LOW);
if (millis() - timeout > 200)
{
Serial.println(durationH + durationL);
timeout = millis();
}
}
上面设置10端口100us一次中断,由7端口检测,检测出来只有80多us
请教是什么原因? |
|