Внешние Прерывания, Mega2560
У меня к вам вопрос, ребята. У меня есть код, который запускает ультразвуковой датчик для измерения расстояния. Мой код использует регистр EICRB и выполняется в прерывании, когда он видит переход на выводе прерывания. Процедура прерывания должна вычислять время эхо-импульса, поступающего от датчика. Ширина контакта пропорциональна измеренному расстоянию.
Я не знаю, почему я не получаю больших результатов. Кажется, есть постоянная ошибка в моих измерениях, и я не уверен, почему. Наверное, это какая-то глупость. Вот скриншот кода, который у меня есть, если кто-нибудь может помочь. Спасибо за чтение.
@Joe Nestor, 👍1
Обсуждение0
Смотрите также:
- Максимальная длина матрицы для инвертирования матрицы на atmega32
- Ошибка при записи загрузчика в ATmega 8A с использованием Arduino Mega 2560: stk500_getsync() attempt 10 of 10: not in sync: resp=0x80
- Как разделить входящую строку?
- Как использовать SPI на Arduino?
- Как сбросить или отформатировать Arduino?
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Arduino Due vs Mega 2560
- Как получить уникальный идентификатор для всех плат Arduino?
Пожалуйста, не публикуйте скриншот своего кода, а публикуйте сам код. Это гораздо проще скопировать и вставить (что полезно для тестирования)., @Edgar Bonet
Что вы подразумеваете под "постоянной ошибкой"? Пожалуйста, будьте более конкретны, @chrisl
Да, извините, я имею в виду, что измерение, кажется, отключено на фиксированную сумму. Независимо от того, находится ли датчик на расстоянии 10 см или 50 см от объекта, существует некоторое количество ошибок, которое фиксируется. чем меньше расстояние, тем больше доля ошибки. Большее расстояние дает меньшую погрешность измерения., @Joe Nestor
Насколько велика ошибка?, @timemage