Sudah umum diketahui bahwa orang tidak dapat melihat perubahan ketika mereka terjadi di bawah 10ms setelah tindakan mereka. Responsif ini akan menghasilkan pengalaman yang baru-baru ini sebagian besar digambarkan sebagai "tajam". Itu terlihat tetapi untuk pengguna sulit untuk menyebutkan nama di atasnya.
Jadi, jika Anda menginginkan kesempurnaan, luangkan sekitar 15 ms. Jika Anda ingin yang benar-benar bagus, ambil penundaan 100 ms. 100ms adalah 50ms rata-rata, dan pasti akan lulus untuk orang-orang.
Aplikasi dan waktu respons yang diharapkan juga vital. Pintu geser atau lift diberikan toleransi yang sangat besar (karena objek fisik akan selalu membutuhkan lebih banyak waktu) sedangkan antarmuka mesin penjual tiket tidak diberikan waktu sama sekali.
Batas atas untuk polling adalah sekitar 1500ms. Di sekitar sana orang akan selalu menyadari bahwa itu lambat.
Data ini murni pengalaman pribadi sebagai seorang gamer dan programmer. YMMV dan ingat bahwa hanya mencobanya sendiri adalah cara terbaik untuk mengetahui bagaimana rasanya. Satu-satunya jawaban "ilmiah" adalah <10 milidetik, di luar itu tentang kemampuan untuk merasakan keterlambatan (yang bervariasi per orang dan momen) dan toleransi pengguna.
Sebagai catatan, Anda dapat mencoba fluktuasi penundaan untuk menghemat waktu baterai atau CPU saat antarmuka tidak digunakan. Tindakan pengguna, semakin cepat pemungutan suara. Ketika aplikasi melakukan hal itu, jajak pendapat sangat lambat. Lebih baik jajak pendapat ketika itu penting!
loop()
agak lambat (maksud saya, terlalu lambat untuk dapat memberikan umpan balik yang cukup cepat kepada pengguna akhir), Anda mungkin dapat menggunakan ISR pada perubahan level pin dan memberikan umpan balik langsung (jika ini dapat dihitung dengan cepat) kepada pengguna , atau memberinya umpan balik sementara (mis. LED menyala) untuk memberi tahu dia bahwa permintaannya telah dikenali dan akan segera diproses (dalamloop()
); Anda akan membiarkanloop()
dengan menetapkan beberapabool
variabel global di ISR.