Мои простейшие часы
- Войдите на сайт для отправки комментариев
Чт, 20/04/2017 - 22:39
#include <EEPROM.h> long pm = 0; long pm2 = 0; #define red 5 #define blue 6 #define sp 8 int h=EEPROM.read(10); int m=EEPROM.read(20); int s=EEPROM.read(30); void setup() { //EEPROM.write(10, 20);//Часы //EEPROM.write(20, 53);//Минуты Serial.begin(9600); pinMode(red, OUTPUT); pinMode(blue, OUTPUT); pinMode(sp, OUTPUT); pinMode(12, INPUT_PULLUP); } void loop() { if (micros() - pm > 999990 && (pm = micros())) { s++; if (s >= 60) { s = 0; digitalWrite(blue,1); m++; EEPROM.write(20, m); } if (m >= 60) { m = 0; digitalWrite(red,1); h++; EEPROM.write(10, h); } if (h >= 24) { h = 0; EEPROM.write(10, h); } if (h <10) { Serial.print("0"); } Serial.print(h); Serial.print(":"); if (m <10) { Serial.print("0"); } Serial.print(m); Serial.print(":"); if (s <10) { Serial.print("0"); } Serial.println(s); } else { if(!digitalRead(12) == 1) { s++; } } digitalWrite(blue,0); digitalWrite(red,0); }
Чёт Вы во всех темах отмечаетесь. Я там (в другой) уже спрашивал про строку 23: что это по-Вашему означает? Вы уверены, что Вы понимаете, что в этой строке написано. По-русски можете сказать?
Также обратите внимание на строку 32. Если запустить Ваши часы в работу, то срок жизни контроллера - одна неделя. Может чуть больше, может чуть меньше, но по документации производителя это строка должна убить EEPROM за одну неделю.
возможно убьет зато часы не слетают когда выключаешь
if
(micros() - pm > 999990 && (pm = micros())) //чего непонятного? этот иф исполняется каждую секунду с какойто погрешностью с какой выясняю.
if
(micros() - pm > 999990 && (pm = micros())) //чего непонятного? этот иф исполняется каждую секунду с какойто погрешностью с какой выясняю.
Вы можете словами сказать условие, которое там записано.
Я вот его понимаю так: "если микрос() - pm больше 999990 И ПРИ ЭТОМ микрос() не равно нулю"
А побочным эффектом проверки этого условия является изменения значения pm на текущее значение микрос()
Вы это имели в виду, когда писали?
часы не слетают когда выключаешь
Кто Вам сказал? Не верьте!
Выключите. а через полчаса включите - будет показывать прошлое. Или это машина времени? :)
Также обратите внимание на строку 32. Если запустить Ваши часы в работу, то срок жизни контроллера - одна неделя. Может чуть больше, может чуть меньше, но по документации производителя это строка должна убить EEPROM за одну неделю.
Страхуется производитель, тесты народ гонял, раз в 20-30 больше. Так что полгода почти гарантировано.)))
А что, нормальный подход, МК - расходный материал, поднимем продажи китая.))))
Переделал
А что поменялось? В строке 25 иддёт запись в еепром раз в минуту - срок жизни еепрома - одна неделя.
Что же до строки 22. Вы упорно игнорируете мою просьбу объяснить словами, что там написано. Что Вы имеете в виду? Не хотите - не надо, конечно, это Ваше дело. По мне так там сейчас написана бессмыслица.
А что поменялось? В строке 25 иддёт запись в еепром раз в минуту - срок жизни еепрома - одна неделя.
Что же до строки 22. Вы упорно игнорируете мою просьбу объяснить словами, что там написано. Что Вы имеете в виду? Не хотите - не надо, конечно, это Ваше дело. По мне так там сейчас написана бессмыслица.
бессмысленный if выполнфемый каждую секунду с точностью до секунды на сколько точен millis() в ардуине
если вам так важно не писать в EEROM так уберите их из кода.
так больше смысла?
Откуда мне знать? Я уже дважды просил объяснить словами что именно Вы хотели сделать. Вы не объясняете? И как я догадаюсь?
если вам так важно не писать в EEROM так уберите их из кода.
Мне важно??????????????
Мне как-то казалось, что мы Ваш код обсуждаем. Но если Вам Ваш код не важен, то имею честь откланяться :)
Похоже вы меня тролите :))
Да, нет, совершенно искренне хотел помочь, объяснить что не так, но Вы вместо того чтобы слушать начали обороняться. расслабьтесь, на Вас никто не нападает. Мне как-то вообще без разницы, что у Вас там.