раза в секунду. Не 2, не 5, а именно 3. Потому как если 1000 мс раздлить на 3, получим бесконечное число, а миллисекунды дискретны, так что в итоге мы можем получить либо чуть меньше трех миганий в секунду, либо чуть больше. И с каждой секундой эта маленькая разница увеличивается.
Это легко проверить с двумя диодами, если один будет мигать раз в секунду, а второй 3 раза в секунду. По идее оба диода должны загораться одновременно на третий раз, но видно, что второй диод мигает быстрее, чем надо.
Вопрос: как заставть моргать диод ровно три раза в секунду с одинаковым интервалом?
во-первых, где у тебя гарантии, что установив задержку в 1000 мс, ты получишь физические 1000 мс? во-вторых, учитывал ли ты преобразования Лоренца для наблюдателя, перемещающегося с другой скоростью? в-третьих, а 333+(blink_cnt%3)?0:1 чем не угодил?
Можно внешний кварц поставить, такой который делиться на много простых
Обсуждают сегодня