Здравствуйте! Помогите пожалуйста с расчётами!
- Войдите на сайт для отправки комментариев
Втр, 20/11/2018 - 20:53
Здравствуйте! Помогите пожалуйста с расчётами!
Зная текущее время и зная расписание звонков, нужно узнать какой из массива ближайший звонок и сколько минут до него осталось.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты. Сразу говорю некоторые переменные в коде пока не используются
Код вот:
#include <iarduino_RTC.h> iarduino_RTC time(RTC_DS1302, 22, 24, 26); String D; String M; String Y; String H; String I; String S; String N; String Time; String Out; int NH[] { 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14 }; int NM[] { 30, 10, 25, 05, 20, 00, 15, 55, 10, 50, 05, 45, 50, 30 }; #include <LiquidCrystal.h> LiquidCrystal lcd(9, 8, 7, 6, 5, 4); void setup() { delay(300); time.begin(); lcd.begin(16, 2); } void loop() { D = time.gettime("d"); M = time.gettime("m"); Y = time.gettime("Y"); H = time.gettime("H"); I = time.gettime("i"); S = time.gettime("s"); N = time.gettime("D"); lcd.clear(); Time = H + ":" + I + ":" + S; TiMe(); lcd.setCursor(0, 0); lcd.print("Time: " + Time); lcd.setCursor(0, 1); lcd.print("Ring: " + Out); delay(900); } void TiMe() { int i = 0; int z = 13; int q = 0; while (q == 0 or i <= z) { if (H.toInt() * 60 + M.toInt() > NH[i - 1] * 60 + NM[i - 1]) { if (H.toInt() * 60 + M.toInt() < NH[i] * 60 + NM[i]) { Out = String(NH[i]) + ":" + String(NM[i]); q = 1; } } i++; } }
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Стесняюсь спросить, уважаемый, а что конкретно не работает?
- не считывает время из DS1302?
- не сравнивает его с заданными значениями?
- сама ардуинка перестала работать?
Что компилятор гутарит?
Можно и так, но будет ли это работать?
Не сравнивает! Я же вроде сказал.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Код написал, но он не работает (он должен узнать когда ближайший звонок). Массив NH содержит часы звонков, а NM минуты.
И охота себе проблемы создавать. Вот вам хинт - храните для каждого звонка не часы и минуты, а минуты с полуночи - будете высчитывать порядок звонков в одно действие.
Он вроде про это и имеет ввиду
Он вроде про это и имеет ввиду
если "он" - это я, то вовсе нет.
Попробуйте в обоих системах посчитать разницу между соседними звонками - ощутите разницу. Как предлагает SLKH - нагляднее, но в моем случае считать проще.
Ну выдайте на сериал перед строкой 61 (H.toInt() * 60 + M.toInt()), (NH[i - 1] * 60 + NM[i - 1]), (NH[i] * 60 + NM[i]), глазами посмотрите, чего там за цифры получаются.
Возможно это проблемы преобразования