El intervalo de tiempo más pequeño que puede medir con el hardware integrado de Arduino Due es de aproximadamente 23.8 nanosegundos.
El intervalo de tiempo más pequeño que puede medir con el hardware integrado de Arduino Uno es de aproximadamente 62,5 nanosegundos.
Temporizadores Arduino Due
Arduino Due utiliza un microprocesador Atmel SAM3X8E Atmel SAM3X8E . Tiene 3 periféricos de contador-temporizador idénticos, cada uno de los cuales tiene 3 canales de temporizador independientes. En la fecha de vencimiento, esta es la mejor forma de medir pequeñas cantidades de tiempo si desea una resolución en nanosegundos. Cada contador de temporizador puede usar diferentes fuentes de reloj como entrada, esto determina los incrementos de tiempo que puede medir el contador de temporizador. La fuente de reloj más rápida es MCK / 2, el reloj maestro (sistema) dividido por 2.
En el Arduino Due, MCK es 84MHz.
Esto significa que el intervalo de tiempo más pequeño que puede medir el contador de temporizador es 2 / 84,000,000 , o alrededor de 23.8 ns .
Puede leer más sobre los contadores de temporizador SAM3X8E en SAM3X8E manual de referencia , sección 37, página 868.
Aquí hay una biblioteca de código abierto que proporciona una buena API para los contadores de tiempo de Arduino Due . Aquí hay una explicación bastante clara de cómo funcionan los temporizadores de SAM3X8E , una alternativa a la lectura del manual de referencia de SAM3X8E. .
También puede escribir código de ensamblaje ARM para medir las duraciones en nanosegundos, pero es probable que los contadores de temporizadores tengan una resolución más alta.
Temporizadores Arduino Uno
El Arduino Uno utiliza el microprocesador Atmega328. Tiene dos temporizadores / contadores que pueden usar diferentes fuentes de reloj como entrada, la fuente más rápida es FCLK_I / O (reloj del sistema, 16MHz). Esto significa que el intervalo más pequeño que puede medir es 1 / 16,000,000 segundos o 62.5 nanosegundos.
Puede leer más sobre los temporizadores en la Hoja de datos de AVR , Sección 16, página 141. O consulte este resumen de cómo usar los temporizadores nativos AVR .