Apa alternatif tercepat untuk memanggil fungsi Arduino digitalread()
dan digitalwrite()
? Solusi khusus AVR atau chip spesifik dapat diterima.
performance
arduino
Mark Harrison
sumber
sumber
Jawaban:
Akses port digital secara langsung!
[...]
sumber
Perpustakaan ini adalah alternatif yang baik: http://code.google.com/p/digitalwritefast/
sumber
Seperti yang disarankan di atas, akses port digital secara langsung. Tapi dengan gaya!
Dengan menulis nilai-nilai hard-coded langsung ke register perangkat keras, Anda kehilangan keterbacaan dan portabilitas.
Saya telah menerbitkan di Github alat yang saya sebut HWA yang memungkinkan Anda menggunakan antarmuka berorientasi objek ke perangkat keras yang tidak memerlukan kompiler C ++ dan menghasilkan kode biner efisiensi tinggi.
HWA ada di sana: https://github.com/duparq/hwa
sumber
Orang-orang di Arduino.SE telah membahas dan menguji ini. Ternyata,
digitalWriteFast()
tidak banyak perbaikan dari yang biasadigitalWrite()
. Akses port langsung, bagaimanapun, sekitar 35-40 kali lebih cepat daripadadigitalWrite()
.sumber
Gunakan ChipKit Uno32. Ini jauh lebih cepat daripada Arduino berbasis AVR. Ini juga akan menangani masalah waktu Anda.
sumber