millis
- Войдите на сайт для отправки комментариев
Чт, 13/06/2019 - 19:23
Хотел сделать управление светом при помощи millis , но смог настроить только 12/12, нужно 18/6 (18 часов светит , 6 часов выключено(сделал на реле)), но к сожалению моих навыков не хватает чтобы сделать такой режим
а скетч?
а скетч?
Для вставки скетча наверное тоже навыков нет
artmob - код вполне грамотный, просто все переменные времен, включая интервал ! - тоже сделайте unsigned long
"Всё уже украдено до нас..." artmob, учитесь пользоваться поиском. Эта тема уже поднималась не раз, например, http://arduino.ru/forum/programmirovanie/eshche-raz-migaem-svetodiodom-b...
artmob, никогда так не делайте. Код надо копировать точно (копи-пастом) - а не так, как Вы это сделали. Что Вы нам подсунули? Оно ведь даже не компилируется!!! Как же Вы его загружаете? Это неуважение к сообществу.
Но, собственно, я не об этом. Как решить проблему Вам уже сказали, я хотел лишь добавить совет - не привыкайте так писать. Вот что у Вас за числа 21600000, и 64800000? Вы, ежели вдруг с бодуна будете, сразу поймёте что это?
Совсем нетрудно ведь один раз написать простые макросы:
А один раз их написав, всегда записывать, например
Разве так не читабельнее?
да вот, а не программисты пишут в лоб, то-есть, что вижу о том и пою )))
можно конечно сэкономить один байт ОЗУ на глобальной переменной используюя в качестве флага
само состояние пина выхода в ущерб более сотни байт памяти программ, но не нужно )))
Смею предположить, что ТС нужен не просто таймер, а суточный таймер. (привязка к началу суток). А тут уж без RTC не обойтись.
А ещё надо настройки периодов кнопками менять. А ещё чтоб не пропадали при перезагрузках. А ещё RTC подводить...
Не обязательно. Пусть сам встаёт и ровно в полночь нажимает Reset
Не обязательно. Пусть сам встаёт и ровно в полночь нажимает Reset
А для вставания в 23:55 и нажимания спаять устройство на ардуине с RTC.
Пусть сам встаёт и ровно в полночь нажимает Reset
Не обязательно самому, можно нанять кого-нибудь.
https://www.arduinolibraries.info/libraries/sw-rtc можно обойтись без толкового майора.
https://www.arduinolibraries.info/libraries/sw-rtc можно обойтись без толкового майора.
Пусть сам встаёт и ровно в полночь нажимает Reset
Не обязательно самому, можно нанять кого-нибудь.
зачем нанимать? у некоторых...
для этой самой штуки есть своя законная жена )))
Дороже выйдет.
а вот если применить битовые оперции, хотя бы на чтение, то экономим не только ОЗУ но и память программ )))
а если воспользоваться битовыми операциями и для записи в порт, то экономия места под программу составит еще пару сотен байт )))
красиво!!!
не совсем понимаю 14 строку, DDRB это настройка на выход?
не совсем понимаю 14 строку, DDRB это настройка на выход?
Запись единицы в пятый бит регистра Data Direction Register порта B, т.е. запись единицы для пина PB5. Запись единицы в регистр DDRx настраивает пин на выход.
не совсем понимаю 14 строку, DDRB это настройка на выход?
Запись единицы в пятый бит регистра Data Direction Register порта B, т.е. запись единицы в PB5. Запись единицы настраивает пин на выход.
это понятно, там же не только настраивает на выход я так понимаю и устанавливает на нём 1?
То-есть выполнение программы идёт по арабско-армянски, справо налево
Нет, только настраивает на выход. Чтобы установить на пине высокий уровень, нужно PORTB |= 1 << pin;
UPD: Ой, извиняюсь. Не заметил выше дефайн #define port PORTB. Таки да, сразу настраивает на выход и устанавливает высокий уовень, Вы правы.
Нет, только настраивает на выход. Чтобы установить на пине высокий уровень, нужно PORTB |= 1 << pin;
UPD: Ой, извиняюсь. Не заметил выше дефайн #define port PORTB. Таки да, сразу настраивает на выход и устанавливает высокий уовень.
Вывел в сериал, при первом вхождении в порту 1 однако
То-есть выполнение программы идёт по арабско-армянски, справо налево
Можно сначала записать единицу в PORTx, а потом в DDRx. В таком случае сразу включится внутренняя подтяжка, а потом пин переведётся на выход. В принципе без разницы, куда сначала писать единицу - в DDRx или в PORTx.
а если булеву заменить на байт, то еще 8 байт экономим в блоке программного кода )))