مقایسه ی دو خروجی متوالی در آردوینو

سلام به همه
من میخام دو تا خروجی ایی که از اینتراپت میگیرم رو باهم مقایسه منم
ولی وقتی این برنامه رو آپلود میکنم مقدار f تغییر نمیکنه کسی میتونه کمکم کنه
include “tc_lib.h”

using namespace arduino_due;

#define CAPTURE_TIME_WINDOW 2500000 // usecs
#define ANALOG_PIN 7
#define ANALOG_VALUE 127 // values in the interval [0,255]

capture_tc0_declaration();
auto& capture_pin2=capture_tc0;
volatile float Tx = 0 ;

volatile float f = 0 ;

volatile float t = 0 ;

volatile int m = 0 ;

void setup() {

Serial.begin(19200);
Serial3.begin(38400);

capture_pin2.config(CAPTURE_TIME_WINDOW);
attachInterrupt(digitalPinToInterrupt(2), measure , LOW );

}

void measure (){
uint32_t status,duty,period;
status=capture_pin2.get_duty_and_period(duty,period);

t = (static_cast<double>(duty)/static_cast<double>(capture_pin2.ticks_per_usec()) );
if ( (t > 1400) && (t < 1600))
{ Tx = t ;}

}
void loop() {

if (Tx - f > 1)
{


f = Tx;

m++;

}
delay(20);


Serial3.println(m);
}

این عکس هم عکس خروجی هایی که میخان مقایسه بشن2021-08-29/1630256030-194641-99c3e02f-a755-43c9-aa23-b100bdf67199.png

سلام دوست عزیز، پاسخ دادن به سوالتون بدون توضیح کدتون کار مشکلی هست و باید کد رو بخونیم و سعی کنیم هدف شما رو از هر خط حدس بزنیم. بهتره که شما ابتدا خط به خط کد رو توضیح بدید (حتی با کامنت گذاری داخل کد) و همچنین تست هایی که گرفتید رو هم بگید. معمولا وقتی که برنامه خروجی مدنظر شما رو نمیده باید داخل کد لاگ گذاری انجام بدید تا روی روند اجرای برنامه نظارت کنید. آیا این کار رو کردید؟ لطفا اطلاعات بیشتری بدید. در مورد اون نمودار که فرستادید هم اطلاعات بیشتری بدید. گفتید دو تا ورودی باید مقایسه بشن. وقتی این نمودار یک سیگنال هست. این سیگنال ها از کجا میان؟ چطوری وارد سیستم شدن؟