Respuestas:
No entran en conflicto, ya que millis()
lee estrictamente el valor inmediato, TCNT0
mientras que PWM a través del temporizador 0 usa la capacidad del hardware para comparar el valor de TCNT0
con los valores OCR0x
sin afectar el valor de ninguno de ellos.
Solo para agregar a la respuesta de @ Ignacio que ha respondido directamente a su pregunta. El "conflicto" del que hablas está relacionado con Timer0
el preescalador.
En su mayor parte, puede usar esos pines (incidentalmente los pines 5 y 6 en UNO) con PWM sin problemas y leer el valor correcto de millis()
(así como obtener el retraso esperado de delay
)
Donde tiene problemas es si desea cambiar el preescalador (generalmente para modificar la frecuencia de la señal PWM). Si cambia esto, entonces afecta directamente el cálculo y la presentación de informes millis()
y la duración de delay(x)
.
millis ()
o de delay ()
todos modos
millis()
solo usa el conteo de desbordamiento del temporizador 0.micros()
lee el valor inmediato enTCNT0
.