Mega2560+меню+часы+6 реле по три таймера

Какой то грамоздкий скетч

Ответить
Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Mega2560+меню+часы+6 реле по три таймера

#1

Сообщение yopopol » 18.08.2019{, 22:38}

Всем привет.
Пол года назад решил я сделать на MEGA2560 6 реле с 3 мя недельными таймерами в каждом. Менюшка что бы была норм, экран,да и часы реального времени, вообщем всё как у людей.

Т.е. 6 реле с 3 недельными таймерами для каждой. Настройки полностью через меню (как часы,так и таймеры)+ настройки сохраняются в епром

Но, проект получился настолько большой,что Мега мерцает экраном и нифига не видно что происходит. Запилил всё на Дуе , там прекрасно работает.
Для Меги (Скетч использует 126876 байт (49%) памяти устройства. Всего доступно 253952 байт.
Глобальные переменные используют 5596 байт (68%) динамической памяти, оставляя 2596 байт для локальных переменных. Максимум: 8192 байт.
)

И мне кажется ,ч то я что то не правильно делаю и проект можно сделать компактнее. Посмотрите пожалуйста, что переделать нужно?

ссылка на проект

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Mega2560+меню+часы+6 реле по три таймера

#2

Сообщение yopopol » 20.08.2019{, 18:36}

Народ посмотрите пожалуйста. Переделывать не прошу, просто посмотреть да посоветовать

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Mega2560+меню+часы+6 реле по три таймера

#3

Сообщение RedSky » 21.08.2019{, 12:48}

Ну первое, что увидел: нет необходимости для дней, часов и минут использовать переменные типа integer, достаточно типа byte.
А так проект сложный, в логике разбираться долго. Не понятны пункты меню 1-7(выделил красным), а "название пункта меню" тоже прилично занимает память (строковая переменная), так что или используйте их в проекте или оставьте поля пустыми. Так же не ясно огромное количество "выход активности пункта меню", может стоило бы использовать текст из "название пункта меню".
Заметил так же, что в блоках определения дня недели выход никуда не подключен.
Так же желательно везде использовать константы и переменные с типом не более нужного. К примеру сравнивая переменную типа байт с числом "4", константу "4" вставлять тоже как байт.
СпойлерПоказать
тест.png
СпойлерПоказать
блок.png

Аватара пользователя
cmept-27
Сержант
Сообщения: 270
Зарегистрирован: 08.12.2016{, 15:51}
Репутация: 76

Mega2560+меню+часы+6 реле по три таймера

#4

Сообщение cmept-27 » 21.08.2019{, 17:10}

OK

Аватара пользователя
yopopol
Рядовой
Сообщения: 91
Зарегистрирован: 06.09.2015{, 23:59}
Репутация: 0

Mega2560+меню+часы+6 реле по три таймера

#5

Сообщение yopopol » 22.08.2019{, 23:15}

Спасибо всем откликнувшимся за советы.
Чуть позже попробую переделать, т.к. комп хондрит, а ноут не вытягивает такой проект ((

Ответить

Вернуться в «Помогите, а то я "нимагу"»