Как разбить переменную на 2 символа?
- Войдите на сайт для отправки комментариев
Пт, 20/11/2015 - 11:37
Друзья я новичок и мне нужна ваша помощь есть код:
byte SEK = 0; byte MIN = 0; byte HOUR = 0; unsigned long prMillis = 0; void setup() { } void loop() { if (millis() - prMillis > 1000){ prMillis = millis(); HOUR = 19; MIN = 06; SEK++; if (SEK > 59){ SEK = 0; MIN++; } if (MIN > 59){ MIN = 0; HOUR++; } if (HOUR > 23) HOUR = 0; } lcd.print(HOUR); }
Вопрос такой как разбить переменную [ byte SEK ] на два символа тоесть если SEK = 24; как разбить его на 2 и 4? ps Это мне нужно чтобы вывести значение на жк дисплей, дисплей глюкнутый и выводит только один символ в любом значении :( Но зато работает :)
Использовать деление на 10 пробовали? Такое "/" и такое "%".
Спасибо за ответ, но немоглибы вы пояснить это в коде) Просто я новичок и обсалютно туп в этом)
teslaboy47, вы можете сразу завести по две переменные, и считать их до 10 и до 6 соответственно. Что бы потом ничего не разбивать.
Большое спасибо! Получился код:
Но есть одна проблема когда проходит минута к минуте должен прибавиться 1 и прибовляется но когла проходит ещё секунда он отнимается и минута уходит в предыдущее значение почиму?
Понимание систем исчисления - это то, с чего должен начинать программист.
Пока сами в сути не разберетесь, чужие подсказки сильно не помогут.
Не надо заводить отдельные переменные, пишите сразу:
Спасибо вам большое сам догнал чё к чему, но без вас бы точно не справился ;)
Вобще-то Вам нужно было перевести число в строку (десятичную запись числа).
http://www.cplusplus.com/reference/cstdio/sprintf/?kw=sprintf
Но есть одна проблема когда проходит минута к минуте должен прибавиться 1 и прибовляется но когла проходит ещё секунда он отнимается и минута уходит в предыдущее значение почиму?
А это потому, что вы ининциализируете значения переменных MIN и HOUR при каждом вызове функции loop(). Перенесите соответствующие строки (23,24) в setup() и будет вам счастье.
Я вообще бы не рекомендовал заводить отдельные переменные - код бы выглядел примерно так:
Хранить время в секундах гораздо проще - переводить тоже не сложно - добавть минуту=добавляем 60 сек
добавить час=добавляем 3600 сек