Hi there,
The code I am using is mentioned below.
#define RX 3
int unsigned flag1=0, flag2 = 0, flag3 = 0;
unsigned long t1 = 0, t2 = 0, t3 = 0;
void setup(){
Serial.begin(115200);
pinMode(RX, INPUT);
digitalWrite(3,HIGH);
attachInterrupt(1, ISR1, RISING);
}
void loop(){
}
void ISR1(){
flag1++;
if(flag1==2){
t1 = micros();
detachInterrupt(digitalPinToInterrupt(3));
for (int i=0;i<800;i++) {
delay(1);
}
flag2 = 1;
attachInterrupt(1, ISR1, RISING);
}
if((flag2==1) &&(flag1==4)){
t2 = micros();
detachInterrupt(digitalPinToInterrupt(3));
for(int i=0;i<800;i++){
delay(1);
}
flag3 = 1;
attachInterrupt(1, ISR1, RISING);
}
if((flag3==1) &&(flag1==6)){
t3 = micros();
detachInterrupt(digitalPinToInterrupt(3));
for(int i=0;i<800;i++){
delay(1);
}
Serial.print(t1);
Serial.print(" ");
Serial.print(t2);
Serial.print(" ");
Serial.print(t3);
Serial.print(" 1 ");
Serial.print(t2 - t1);
Serial.print(" 2 ");
Serial.println(t3 - t2);
flag1 = 0;
flag2 = 0;
flag3 = 0;
t1 = 0;
t2 = 0;
t3 = 0;
attachInterrupt(1, ISR1, RISING);
}
}
Please tell me the mistake I have done when taking the microseconds readings.