Quais são as alternativas mais rápidas para chamar as funções do Arduino digitalread()
e digitalwrite()
? Soluções específicas para AVR ou chip são aceitáveis.
performance
arduino
Mark Harrison
fonte
fonte
Respostas:
Acesse as portas digitais diretamente!
[...]
fonte
Esta biblioteca é uma boa alternativa: http://code.google.com/p/digitalwritefast/
fonte
Como sugerido acima, acesse as portas digitais diretamente. Mas com estilo!
Ao escrever valores codificados diretamente nos registros de hardware, você perde a legibilidade e a portabilidade.
Publiquei no Github uma ferramenta chamada HWA que permite usar uma interface orientada a objetos para o hardware que não requer um compilador C ++ e produz código binário de alta eficiência.
HWA está lá: https://github.com/duparq/hwa
fonte
O pessoal do Arduino.SE já discutiu e testou isso. Como se vê,
digitalWriteFast()
não há muita melhoria em relação ao normaldigitalWrite()
. O acesso direto à porta, no entanto, é cerca de 35 a 40 vezes mais rápido quedigitalWrite()
.fonte
Use o ChipKit Uno32. É muito mais rápido que os Arduinos baseados em AVR. Ele também irá lidar com seus problemas de tempo.
fonte