Ответы:
Они не конфликтуют, так как millis()строго считывают непосредственное значение, TCNT0тогда как ШИМ через таймер 0 использует способность оборудования сравнивать значение TCNT0со значениями, OCR0xне влияя на значение любого из них.
Просто чтобы добавить к ответу @ Игнасио, который прямо ответил на ваш вопрос. «Конфликт», о котором вы говорите, Timer0связан с прескалером России.
По большей части вы можете использовать эти выводы (между прочим, контакты 5 и 6 в UNO) с ШИМ без проблем и прочитать правильное значение millis()(а также получить ожидаемую задержку от delay)
Проблемы возникают в том случае, если вы хотите изменить прескалер (обычно для изменения частоты сигнала ШИМ). Если вы измените это, то вы будете напрямую влиять на расчет, отчетность millis()и продолжительность delay(x).
millis ()или в delay ()любом случае
millis()просто использует счетчик переполнения таймера 0micros()читает непосредственное значение вTCNT0.