¿Cuáles son las alternativas más rápidas para llamar a las funciones de Arduino digitalread()
y digitalwrite()
? Las soluciones específicas de AVR o específicas de chip son aceptables.
performance
arduino
Mark Harrison
fuente
fuente
Respuestas:
¡Acceda a los puertos digitales directamente!
[...]
fuente
Esta biblioteca es una buena alternativa: http://code.google.com/p/digitalwritefast/
fuente
Como se sugirió anteriormente, acceda a los puertos digitales directamente. Pero con estilo!
Al escribir valores codificados directamente en los registros de hardware, pierdes legibilidad y portabilidad.
Publiqué en Github una herramienta que llamé HWA que le permite usar una interfaz orientada a objetos para el hardware que no requiere un compilador de C ++ y produce código binario de alta eficiencia.
HWA está ahí: https://github.com/duparq/hwa
fuente
La gente de Arduino.SE ya ha discutido y probado esto. Como resultado,
digitalWriteFast()
no mejora mucho más que lo normaldigitalWrite()
. Sin embargo, el acceso directo al puerto es aproximadamente 35-40 veces más rápido quedigitalWrite()
.fuente
Usa el ChipKit Uno32. Es mucho más rápido que los Arduinos basados en AVR. También se ocupará de sus problemas de tiempo.
fuente