
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.239.148.127] |
![]() |
|
Сообщ.
#1
,
|
|
|
Пусть есть 2 unsigned long: время до выполнения функции и после. Используется разница их значений после выполнения micros.
Последовательный порт включать нельзя. Соответственно, использую GSM-модуль, чтобы в SMS получать значения микросекунд. Т.о. выяснилось, что выполнение unsigned long ulBegin = micros() - занимает 2мкс. Выполнение delay(0) - занимает 12мкс, вычет 4мкс - имеем 8мкс. А теперь баг: если вместо delay(0) написать delay(1) - смс не отправляется. Причины неясны - но суть не в этом: каким образом еще можно вывести на экран микросекунды - если все, что имею еще - TM1637 семисегментный индикатор, в котором нет функции "покажи число"? И есть ли какие-нибудь мануалы, описывающие время выполнения стандартных функций Arduino nano? |
Сообщ.
#2
,
|
|
|
delay и delayMicroseconds плавают микросекундными и миллисекундными погрешностями (если запустить Timer0 - это отчетливо видно, если выводить время их выполнения в ком-порт).
Для точной задержки нужно свои часы реального времени делать на основе Timer2. https://bad-good.ru/2023/february/arduino-timer2.html |