Réponses:
Ils n'entrent pas en conflit car millis()lit strictement la valeur immédiate dans TCNT0alors que PWM via le temporisateur 0 utilise la capacité du matériel pour comparer la valeur de TCNT0avec les valeurs dans OCR0xsans affecter la valeur de l'un d'eux.
Juste pour ajouter à la réponse de @ Ignacio qui a directement répondu à votre question. Le «conflit» dont vous parlez est lié au Timer0prescaler de.
Pour la plupart, vous pouvez utiliser ces broches (accessoirement les broches 5 et 6 sur l'UNO) avec PWM sans problème, et lire la valeur correcte de millis()(ainsi qu'obtenir le retard attendu de delay)
Lorsque vous rencontrez des problèmes, c'est si vous souhaitez modifier le pré-échelle (généralement pour modifier la fréquence du signal PWM). Si vous changez cela, vous affectez directement le calcul et le rapport de millis()et la longueur de delay(x).
millis ()ou de delay ()toute façon
millis()utilise simplement le nombre de dépassements du temporisateur 0.micros()lit la valeur immédiate enTCNT0.