Общеизвестно, что люди не могут воспринимать изменения, когда они происходят менее чем через 10 мс после их действия. Эта отзывчивость приведет к опыту, который в последнее время в основном описывается как «мгновенный». Это заметно, но пользователям сложно назвать это имя.
Так что если вы хотите совершенства, примите около 15 мс задержки. Если вы хотите действительно хорошо, возьмите 100 мс задержки. 100 мс - это в среднем 50 мс, и, безусловно, пройдет для людей.
Приложение и ожидаемое время отклика также имеет жизненно важное значение. Раздвижная дверь или лифт имеют очень большой допуск (поскольку физический объект всегда будет занимать намного больше времени), тогда как интерфейсы торговых автоматов вообще не предоставляются.
Верхний предел для опроса будет около 1500 мс. Там люди всегда будут замечать, что это медленно.
Эти данные являются сугубо личным опытом геймера и программиста. YMMV и помните, что просто попробовать это самому - лучший способ узнать, каково это. Единственный «научный» ответ - это <10 миллисекунд, кроме того, речь идет о способности воспринимать задержку (которая варьируется в зависимости от человека и момента) и терпимости пользователя.
Как примечание стороны, вы можете попытаться изменить задержки, чтобы сэкономить время батареи или процессора, когда интерфейс не используется. Пользовательское действие, тем быстрее опрос. Когда приложение работает, опрашивайте очень медленно. Лучше опросить, когда это важно!
loop()
работаете довольно медленно (я имею в виду, что это слишком медленно, чтобы дать возможность достаточно быстрой обратной связи с конечным пользователем), вы можете использовать ISR при изменении уровня вывода и обеспечить немедленную обратную связь (если это можно быстро рассчитать) для пользователя или дать ему временную обратную связь (например, горит светодиод), чтобы сообщить ему, что его запрос был распознан и будет обработан в ближайшее время (вloop()
); Вы позволитеloop()
, установив некоторую глобальнуюbool
переменную в ISR.