#include <Servo.h>
#include <SoftwareSerial.h>
const int exti_pin = 2;
Servo servo;
volatile unsigned long now, past = 0, diff = 0;
volatile boolean flag = false;
void setup() {
servo.attach(12);
pinMode(exti_pin, INPUT);
attachInterrupt(digitalPinToInterrupt(exti_pin), PPM, CHANGE);
Serial.begin(115200);
Serial.println();
}
void loop() {
servo.write(90);
delay(100);
if(flag) {
Serial.println(diff);
flag = false;
}
}
void PPM() {
if (digitalRead(exti_pin)) {
past = micros();
}
else {
now = micros();
diff = now - past;
flag = true;
}
}