В чем разница между delay() и delaymicroseconds()
Предоставляет ли delaymicroseconds() что-то большее, чем точность времени?
@ahmed walid, 👍1
1 ответ
Лучший ответ:
▲ 0
Между двумя функциями существует более важная разница, чем единица времени, принимаемая в качестве параметров. функция delay() вычисляет время, используя временной интервал Arduino. Однако Delaymicroseconds() не использует прерывание по времени Как вы, возможно, знаете, когда вызывается прерывание, оно останавливает все остальные прерывания. Таким образом, реальная разница в том, что вы не можете использовать delay() в программе, в которой вы используете прерывание, и вместо этого используйте delaymicroseconds(), но имейте в виду, что у него есть диапазон, в котором он точен, и он составляет от 3 до 16383 микросекунд.
,
@ahmed walid
Смотрите также:
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- Программирование Arduino на Паскале?
- Как реализовать Arduino NANO в качестве адаптера RS-232 к USB (или нужен Arduino Mega?) Для связи с 3D принтером
- Выход 3,3 В при установке вывода на высокий уровень
- Может ли Arduino UNO постоянно хранить код?
- Использование библиотеки Arduino fix_fft или arduinoFFT для фильтрации определенного звука?
- Как сгенерировать файлы .a и .so для добавления в проект arduino
- Частота дискретизации нескольких аналоговых контактов на Arduino
Это не совсем так. Вы можете использовать задержку в программе с прерыванием, но вы не можете использовать ее в ISR., @Delta_G
«delay () вычисляет время, используя прерывание по времени» - это не очень важно. Как видно из исходного кода (https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/wiring.c),
delay()
использует функциюmicros()
, которая сам требует прерывания таймера для увеличения счетчика. Соответствующее прерывание срабатывает, даже если вы не используете задержки. Пока вам не нужны прерывания от задействованного таймера, нет никаких сложностей с использованием прерываний иdelay()
. Вы правы насчетdelayMicroseconds()
: он подсчитывает определенное количество циклов процессора (определяетсяF_CPU
)., @Sim Son