Внешние Прерывания, Mega2560

У меня к вам вопрос, ребята. У меня есть код, который запускает ультразвуковой датчик для измерения расстояния. Мой код использует регистр EICRB и выполняется в прерывании, когда он видит переход на выводе прерывания. Процедура прерывания должна вычислять время эхо-импульса, поступающего от датчика. Ширина контакта пропорциональна измеренному расстоянию.

Я не знаю, почему я не получаю больших результатов. Кажется, есть постоянная ошибка в моих измерениях, и я не уверен, почему. Наверное, это какая-то глупость. Вот скриншот кода, который у меня есть, если кто-нибудь может помочь. Спасибо за чтение.

, 👍1

Обсуждение

Пожалуйста, не публикуйте скриншот своего кода, а публикуйте сам код. Это гораздо проще скопировать и вставить (что полезно для тестирования)., @Edgar Bonet

Что вы подразумеваете под "постоянной ошибкой"? Пожалуйста, будьте более конкретны, @chrisl

Да, извините, я имею в виду, что измерение, кажется, отключено на фиксированную сумму. Независимо от того, находится ли датчик на расстоянии 10 см или 50 см от объекта, существует некоторое количество ошибок, которое фиксируется. чем меньше расстояние, тем больше доля ошибки. Большее расстояние дает меньшую погрешность измерения., @Joe Nestor

Насколько велика ошибка?, @timemage