millis или прерывания.
- Войдите на сайт для отправки комментариев
Втр, 11/08/2020 - 21:36
Если для проекта достаточно отслеживание событий с "точностью" до одной секунды, такой код имеет право на "жизнь" или будут баги?
#include <MsTimer2.h> byte my_h=0, my_m=0, my_s=0, lmy_h=1, lmy_m=1, lmy_s=1; // внутренние часы, минуты, секунды void mytime() { my_s++; if (my_s > 59) {my_s = 0; my_m++;} if (my_m > 59) {my_m = 0; my_h++;} if (my_h > 23) my_h = 0; } void setup() { MsTimer2::set(1000, mytime); // прерывание каждую секунду MsTimer2::start(); } void loop() { if (my_s != lmy_s) { // каждую секунду lmy_s = my_s; } if (my_m != lmy_m) { // каждую минуту lmy_m = my_m; } if (my_h != lmy_h) { // каждый час lmy_h = my_h; } }
Будут баги или нет - это только от тебя зависит.
rkit абсолютно прав: пока неизвестно, что именно должен делать код, невозможно определить, делает ли он то, что должен.
Перефразируя: Программа всегда делает то, что написал программист, хотя это и не всегда совпадает с тем, что он хотел написать.
Вроде часики тикают. На данном этапе багов может и нет пока )
Вот пример кода одного из моих контроллеров на arduino nano. Вроде пашет, но может можно что-нибудь улучшить? Библиотеки гайвера использую т.к. только его нашёл урезанные, а полные не влезали. Контроллер получает данные с датчиков и управляет лампами и герляндой, идет обмен данных с основным контроллером и управление от него по MQTT. Предусмотрено дублирование расчёта заката и рассвета при обрыве связи, ну и автономная работа при этом обрыве.
Что значит "что нибудь улучшить" ? Вы вообще о чем ? Что нибудь всегда можно улучшить вплоть до написания нового.
"Улучшить" можно только при условии существования критерия, что лучше, а что хуже.
Иначе - никак.
Т.к. раздел для новичков, вопрос больше так сказать про основы, код то работает, но может я что-то делаю как говориться "чешу левой ногой правое ухо".
Может быть.
Но, согласитесь, для новичка чтение исходников, написанных более опытными программистами, - вещь безусловно полезная. А вот для опытных чтение исходников, написанных новичками, - занятие бесперспективное.
Поэтому, если хотите чему-то научиться, читайте чужие исходники, но не надо призывать к чтению своих.