0 голосов
Доброго времени!

В статье http://wiki.amperka.ru/продукты:hc-sr04-ultrasonic-sensor-distance-module

Предложено таймер ожидания delayMicroseconds установить в 2 микросекунды.

А в описании функции:

Максимальное значение будет 16383, что равно 16 миллисекундам. Разрешение равно 4, то есть число будет всегда кратно четырем.

В связи с этим вопрос - будет ли работать таймер, если его значение должно быть кратно 4.

Спасибо за ответы ))
назад (2 баллов) 1

2 Ответы

0 голосов

Будет , но уже не гарантируется, что будет пауза в 2*10^-6 с , ( скорее всего пауза будет больше):

Эта функция работает очень точно в диапазоне от 3 микросекунд и выше. Мы не можем гарантировать, что delayMicroseconds будет работать точно для меньшего времени задержки.

https://www.arduino.cc/reference/en/language/functions/time/delaymicroseconds/

назад (729 баллов) 1 5 23
0 голосов

В данном случае не обязательно вообще делать задержку. Её тут поставили для надежности. Мы просто должны были установить высокий уровень сигнала.

В официальном описании функции про кратность ничего не сказано. В примере у них тоже значение не кратное 4. 

Однако там написано, что эта функция работает точно от 3 микросекунд. Так что 2 микросекунды могут быть с погрешностью.

назад (865 баллов) 2 32 72
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. parovoZZ

    311 балл(ов)

  2. issaom

    200 балл(ов)

  3. BAR__MEN

    136 балл(ов)

  4. gokase

    121 балл(ов)

  5. Un_ka

    103 балл(ов)

  6. dartWaiter

    67 балл(ов)

Награды месяца
1-е место: Arduino Nano 33 BLE Sense
2-е место: Arduino Nano 33 BLE
3-е место: Arduino Nano 33 IoT

...