Массив из переменных
- Войдите на сайт для отправки комментариев
Сб, 04/05/2013 - 11:01
Привет. Нужно создать массив, состоящий из 6 переменных. Выглядят они так:
[color=#CC6600]int[/color] Hour = RTC.get(DS1307_HR,[color=#CC6600]true[/color]);
[color=#CC6600]int[/color] Min = RTC.get(DS1307_MIN,[color=#CC6600]false[/color]);
[color=#CC6600]int[/color] Sec = RTC.get(DS1307_SEC,[color=#CC6600]false[/color]);
[color=#CC6600]int[/color] Dt = RTC.get(DS1307_DATE,[color=#CC6600]false[/color]);
[color=#CC6600]int[/color] Mth = RTC.get(DS1307_MTH,[color=#CC6600]false[/color]);
[color=#CC6600]int[/color] Yr = RTC.get(DS1307_YR,[color=#CC6600]false[/color]);
int Time получается объявить из этих переменных, но в серийный порт выводится лишь одна цифра - 2201.Я так понял, это случайная цифра, т.к это ни год, ни месяц, ни час, ни минута, и ни что-то из них.
Каждая переменная берёт значение из соотв. регистра DS1307 - часов реального времени. Массив мне нужен, чтобы упростить работу с последующим циклом, выводящим кусок кода на дисплей при условии нажатия кнопки.
как-то вот так
Да, ещё вопрос, но не в тему: возможно ли создание нескольких loop()? У меня была идея - в одном loop() сделать счетчик времени, в другом - вольтметр, в третьем - условие вывода их на дисплей. Возможно ли это сделать? Для этого разумеется, нужен вывод массива Time за пределы loop...
Ты хочешь паралельно запустить три процесса?
Да, ещё вопрос, но не в тему: возможно ли создание нескольких loop()? У меня была идея - в одном loop() сделать счетчик времени, в другом - вольтметр, в третьем - условие вывода их на дисплей. Возможно ли это сделать? Для этого разумеется, нужен вывод массива Time за пределы loop...
Возможно, с применением RTOS. Но сложность высокая, поэтому так делают только тогда, когда иначе никак. Т.е. лезть туда без подготовки не рекомендуется
Намного проще все три задачи объединить в одном loop
Переменные, объявленные вне функций (и вне setup и loop), считаются глобальными (если упрощенно, то объявлять их нужно до setup)
Можете показать примеры трёх loop() в таком виде? Как это должно выглядеть?
Да, два процесса парраллельно, но результат от них будет только при условии выполнения условия в 3 цикле.
Можете показать примеры трёх loop() в таком виде? Как это должно выглядеть?
Ну, как-то вот так: http://easyelectronics.ru/avr-uchebnyj-kurs-arxitektura-programm-chast-3...
(и там дальше по ссылкам)
Но непонятно, что вам мешает делать все последовательно
Делая последовательно, у меня не получается подобрать подходящее условие... Если я беру if - else тогда при нажатии на кнопку, информация на дисплее не обновляется. А если я беру while - выполняется то одно, то другое, без нажатия кнопки.
Код приведи, а то не совсем понятно.
int Time[2];
enum {
Hour, // 0
Min, // 1
Sec // 2
};
Тогда вызов Time[Hour]=RTC.get(DS1307_HR,true)
Собрано из нескольких кусков кода. Компилируется, но работает не корректно.
Adno, массив Time мне нужно использовать в целом. Вызываться он должен в Serial.println() и lcd.print().
Не совсем понятно, где в коде кнопка, похоже на analogRead(0) ???. И что она должна делать. И зачем зацикливать вывод на дисплей в разных циклах.
ну попробуй вот так