точка, на часах ГРИ
- Войдите на сайт для отправки комментариев
Чт, 30/09/2021 - 22:20
if(sec<1) // светодиоды не горят
{
// зажечь светодиоды
digitalWrite(led1,HIGH);
}
if(sec>=1) // светодиоды горят
{
// потушить светодиоды
digitalWrite(led1,LOW);
Кто то может по простому объяснить как это работает?
Когда на секундах 0... иначе... Написано же открытым текстом.
Как я понимаю, эти строки кода отвечают за мигание точек разделителей. Хочется понять как это работает, а главное, можно ли использовать этот выход как сигнал для десятичного счётчика.
считывание секунд происходит как двухзначного числа. Вот я и не пойму, как реализовано мигание раз в секунду.
За моргание точек обычно отвечает строка if (sec % 2) digitalWrite(led1,HIGH); else digitalWrite(led1,LOW); а тот код моргает раз в минуту.
Так он же не показывает остальной код, может у него sec - это и есть остаток деления на два
Эти новички вечно жалеют лишнюю строку кода показать
код какой то рваный....
я так понимаю весь пакет выглядит так:
прошу прощения... Код результат коллективной работы. Я туда ещё свою часть напихал для работы МР3 модуля... В результате работает, но понять как и что, мне чайнику, конечно сложно
Ее
Если я правильно понимаю, то мигание точки ни как не завязано на работу модуля реального времени. вывод сделан исходя из :
startTime = currentTime; , а
currentTime = millis();.
То есть , это чисто ардуиновский отсчёт. Интересно, на сколько он точен.... Можно ли как то синхронизировать с реальными секундами?
Можно, и даже красиво. На одной из ног принимаем прерывание от секундной ноги ds3231 и включаем точку на 500 мс через блинк без делэй.
Я так мигаю
Можно, и даже красиво. На одной из ног принимаем прерывание от секундной ноги ds3231 и включаем точку на 500 мс через блинк без делэй.
Я об этом думал. Но на модуле версии мини эта ножка не выведена на разъём. Можно конечно подпаяться... так или иначе выход с неё делать надо.