Какие самые быстрые альтернативы для вызова функций Arduino digitalread()
и digitalwrite()
? AVR-специфичные или чип-специфичные решения являются приемлемыми.
performance
arduino
Марк Харрисон
источник
источник
Ответы:
Доступ к цифровым портам напрямую!
[...]
источник
Эта библиотека является хорошей альтернативой: http://code.google.com/p/digitalwritefast/
источник
Как указано выше, доступ к цифровым портам напрямую. Но со стилем!
Записывая жестко запрограммированные значения непосредственно в аппаратные регистры, вы теряете удобочитаемость и переносимость.
Я опубликовал на Github инструмент под названием HWA, который позволяет вам использовать объектно-ориентированный интерфейс с аппаратным обеспечением, для которого не требуется компилятор C ++ и который создает высокоэффективный двоичный код.
HWA там: https://github.com/duparq/hwa
источник
Люди в Arduino.SE уже обсуждали и проверяли это. Как оказалось,
digitalWriteFast()
не так много улучшений по сравнению с обычнымdigitalWrite()
. Прямой доступ к порту, однако, примерно в 35-40 раз быстрее, чемdigitalWrite()
.источник
Используйте ChipKit Uno32. Это намного быстрее чем Arduinos на базе AVR. Это также поможет решить ваши проблемы со временем.
источник