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

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

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

#1

Сообщение taras20 » 07.02.2016{, 17:08}

Стоит счетчик от максимума(4) через 0 к максимуму (циклический по кругу). Стрелки влево вправо. По его значению по индексу из массива считываются переменные и выводятся на экран. Так вот когда 0 1 2 3 4 3 2 1 нормально. Но когда дохожу до 0 и влево (назад счетчик переходит на 4) тут-то на экране "конец света". Что это и как победить?
test_mas.rar
(323.63 КБ) 79 скачиваний
сначала всё хорошо
4818096.jpg
потом +1
2907098.jpg
проект прикреплен
видео
Вложения
8669566.jpg
Последний раз редактировалось taras20 07.02.2016{, 17:19}, всего редактировалось 1 раз.

Аватара пользователя
HAyMOB
Рядовой
Сообщения: 10
Зарегистрирован: 07.02.2016{, 10:33}
Репутация: 0
Откуда: Питер
Имя: Антон
Контактная информация:

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

#2

Сообщение HAyMOB » 07.02.2016{, 18:11}

Здравствуйте. Как вариант проблема в пользовательском блоке. Графическое представление его есть?
Последний раз редактировалось HAyMOB 07.02.2016{, 18:11}, всего редактировалось 1 раз.

kossn93
Сержант
Сообщения: 151
Зарегистрирован: 05.09.2015{, 14:41}
Репутация: 0
Откуда: Харьков

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

#3

Сообщение kossn93 » 07.02.2016{, 18:33}

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

Добавлено (07.02.2016, 18:33)
---------------------------------------------
только у вас на видео четко различимые знаки, а у меня ровно как камера ваша видит на фото...

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

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

#4

Сообщение taras20 » 07.02.2016{, 19:10}

HAyMOB писал(а):Здравствуйте. Как вариант проблема в пользовательском блоке. Графическое представление его есть?
Графическое представление модуля счетчика (кстати на разных пробовал с этого сайта -то же самое) Даже разработчику написал - можно ли а модуле чтения из массива защиту поставить - он в архив кинул)
7600973.jpg
вот сам пользовательский модуль
Вложения
mod_counter_cir.rar
(55.93 КБ) 69 скачиваний
Последний раз редактировалось taras20 07.02.2016{, 19:11}, всего редактировалось 1 раз.

Аватара пользователя
Alex16
Рядовой
Сообщения: 70
Зарегистрирован: 05.01.2016{, 01:20}
Репутация: 1
Откуда: Армавир

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

#5

Сообщение Alex16 » 07.02.2016{, 23:08}

Посмотри, возможно решит проблему
Вложения
test_-1.zip
(968.11 КБ) 72 скачивания
Последний раз редактировалось Alex16 07.02.2016{, 23:10}, всего редактировалось 1 раз.
AlexA

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#6

Сообщение support » 08.02.2016{, 05:53}

taras20 писал(а):Даже разработчику написал - можно ли а модуле чтения из массива защиту поставить - он в архив кинул)
Я в комментарии описал почему я не принял это как багу. Я могу сделать программную проверку на соответствие запрашиваемого элемента размеру массива. Но этот код будет вызываться всегда,  и когда он нужен и когда не нужен. Это не оправданное увеличение размера программы, а размер памяти ардуино ограничен. Поэтому предлагаю в проекте сделать проверку значения
Автор программы FLProg.

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

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

#7

Сообщение taras20 » 08.02.2016{, 10:56}

Alex16 писал(а):Посмотри, возможно решит проблему
Спасибо за попытку получилось то же самое. вот видео

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

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

#8

Сообщение taras20 » 08.02.2016{, 11:05}

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

Сейчас попробовал сделать счётчик от 1 (а не от 0) до макс. Эффет "конца света" пропал. Только счетчик по кольцу неправильно считает. Но это можно поправить.
Последний раз редактировалось taras20 08.02.2016{, 11:12}, всего редактировалось 1 раз.

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

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

#9

Сообщение taras20 » 08.02.2016{, 11:45}

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

Ответить

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