Считывание данных из массива по счетчику 0123210

Ответить
Аватара пользователя
taras20
Рядовой
Сообщения: 52
Зарегистрирован: 28 сен 2015, 17:41
Откуда: Москва

Считывание данных из массива по счетчику 0123210

Сообщение taras20 »

Стоит счетчик от максимума(4) через 0 к максимуму (циклический по кругу). Стрелки влево вправо. По его значению по индексу из массива считываются переменные и выводятся на экран. Так вот когда 0 1 2 3 4 3 2 1 нормально. Но когда дохожу до 0 и влево (назад счетчик переходит на 4) тут-то на экране "конец света". Что это и как победить?
8669566.jpg
сначала всё хорошо
2907098.jpg
потом +1
4818096.jpg
проект прикреплен
видео
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось taras20 07 фев 2016, 17:19, всего редактировалось 1 раз.
Аватара пользователя
HAyMOB
Рядовой
Сообщения: 10
Зарегистрирован: 07 фев 2016, 10:33
Откуда: Питер
Имя: Антон
Контактная информация:

Считывание данных из массива по счетчику 0123210

Сообщение HAyMOB »

Здравствуйте. Как вариант проблема в пользовательском блоке. Графическое представление его есть?
Последний раз редактировалось HAyMOB 07 фев 2016, 18:11, всего редактировалось 1 раз.
kossn93
Сержант
Сообщения: 151
Зарегистрирован: 05 сен 2015, 14:41
Откуда: Харьков

Считывание данных из массива по счетчику 0123210

Сообщение kossn93 »

сделал себе простейший контроллер отопления дома, управляет старым котлом, используется нано,экран 20*4по I2C, релюшки,4 датчика далас(котла, подачи,уличной температуры и комнатной), переодически, может раз в два дня, а может и в неделю не разу, наблюдаю такой же точно конец света на экране)) ребут все решает, но защита от завесания в этом случае не срабатывает... в проекте нет ни массивов ни счетчиков, проблема у меня конечно от вашей отличается, но экран точь в точь также себя ведет... может решение вашей проблемы поможет и мне)

Добавлено (07.02.2016, 18:33)
---------------------------------------------
только у вас на видео четко различимые знаки, а у меня ровно как камера ваша видит на фото...
Аватара пользователя
taras20
Рядовой
Сообщения: 52
Зарегистрирован: 28 сен 2015, 17:41
Откуда: Москва

Считывание данных из массива по счетчику 0123210

Сообщение taras20 »

HAyMOB писал(а):Здравствуйте. Как вариант проблема в пользовательском блоке. Графическое представление его есть?
Графическое представление модуля счетчика (кстати на разных пробовал с этого сайта -то же самое) Даже разработчику написал - можно ли а модуле чтения из массива защиту поставить - он в архив кинул)
7600973.jpg
вот сам пользовательский модуль
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось taras20 07 фев 2016, 19:11, всего редактировалось 1 раз.
Аватара пользователя
Alex16
Рядовой
Сообщения: 70
Зарегистрирован: 05 янв 2016, 01:20
Откуда: Армавир

Считывание данных из массива по счетчику 0123210

Сообщение Alex16 »

Посмотри, возможно решит проблему
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Alex16 07 фев 2016, 23:10, всего редактировалось 1 раз.
AlexA
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

Считывание данных из массива по счетчику 0123210

Сообщение support »

taras20 писал(а):Даже разработчику написал - можно ли а модуле чтения из массива защиту поставить - он в архив кинул)
Я в комментарии описал почему я не принял это как багу. Я могу сделать программную проверку на соответствие запрашиваемого элемента размеру массива. Но этот код будет вызываться всегда,  и когда он нужен и когда не нужен. Это не оправданное увеличение размера программы, а размер памяти ардуино ограничен. Поэтому предлагаю в проекте сделать проверку значения
Автор программы FLProg.
Аватара пользователя
taras20
Рядовой
Сообщения: 52
Зарегистрирован: 28 сен 2015, 17:41
Откуда: Москва

Считывание данных из массива по счетчику 0123210

Сообщение taras20 »

Alex16 писал(а):Посмотри, возможно решит проблему
Спасибо за попытку получилось то же самое. вот видео
Аватара пользователя
taras20
Рядовой
Сообщения: 52
Зарегистрирован: 28 сен 2015, 17:41
Откуда: Москва

Считывание данных из массива по счетчику 0123210

Сообщение taras20 »

support писал(а):Поэтому предлагаю в проекте сделать проверку значения
Спасибо. Я делал проверку. Но она почему-то не срабатывала. Пробовал MAX(0,Значение) но при отладке ошибка
7610732.png
Пробовал сравнивать
7846632.png
Всё тоже самое.
Как Вы порекомендуете сравнивать?
Моё предположение, что в модуле счетчика при переходе от 0 к -1 есть какое-то мгновение, когда индекс -1. Может счетчик сделать от 1 до макс?

Сейчас попробовал сделать счётчик от 1 (а не от 0) до макс. Эффет "конца света" пропал. Только счетчик по кольцу неправильно считает. Но это можно поправить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось taras20 08 фев 2016, 11:12, всего редактировалось 1 раз.
Аватара пользователя
taras20
Рядовой
Сообщения: 52
Зарегистрирован: 28 сен 2015, 17:41
Откуда: Москва

Считывание данных из массива по счетчику 0123210

Сообщение taras20 »

Как удалось победить. Подсмотрел "закольцованный" счетчик на форуме. Там стояло разрешение записи выходной переменной.
В ИТОГЕ:
В модуле счётчика сделал разрешение на запись
6237124.png
и вроде всё заработало. Правда промигивает максимальное+1 значение при переходе от 0 к макс. Но это не критично - главное нет "конца света"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «Таймеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя