Страница 1 из 1

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 16:05
KulibinOrsk
Контроллер ардуино мини 5В
Опрос датчика температуры и длительности периода(быстрый вход)
Опрос 3-х кнопок (быстрые входа)
сохранение в еепром 5 переменных и их считывание вначале
Вывод на I2C OLED дисплей: ssd1306 текущих и пороговых данных

Есть рабочая программа.
Потребовалось добавить 1 коэффициент и вывести на дисплей. (в итоге после компиляции программа занимает 57%)
Если добавляю в коде то все работает, но при выводе на дисплей приходится добавлять блок вывода строки на дисплей и код увеличивается и тогда начинаются проблемы - перестает адекватно работать. То после выводы замирает, то не выводит текущие данные.
Программу пока не выкладываю т.к. без этого кусочка все работает.
Может кто то сможет подсказать ГЛОБАЛЬНОЕ РЕШЕНИЕ (ну кроме смены контроллера) или хотя бы направление движения.

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 16:10
Ingwar
Попробуйте вывести дисплей на отдельную плату и активировать ее один раз в цикле с минимально приемлемой частотой.

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 17:04
KulibinOrsk
[ref]Ingwar[/ref], я пробовал полностью отключать режим изменения уставок и отображения их на дисплее (этот режим на отдельной плате) , но НЕ помогло. Я потому и написал мысль - думаю что связанно это именно с памятью. Хорошо если я ошибаюсь..

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 17:22
Sancho
KulibinOrsk писал(а): 10 янв 2020, 16:05 в итоге после компиляции программа занимает 57%
А сколько оперативки?

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 17:58
KulibinOrsk
[ref=#ff8000]Sancho[/ref], данные:
Скетч использует 17570 байт (57%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1359 байт (66%) динамической памяти, оставляя 689 байт для локальных переменных. Максимум: 2048 байт.

Если программа более 57% памяти то некорректно работает ?

Добавлено: 10 янв 2020, 19:02
Sancho
KulibinOrsk писал(а): 10 янв 2020, 17:58 Глобальные переменные используют 1359 байт (66%) динамической памяти, оставляя 689 байт для локальных переменных. Максимум: 2048 байт.
Об этом нужно думать...

Если программа более 57% памяти то некорректно работает ?

Добавлено: 11 янв 2020, 10:14
KulibinOrsk
РЕШЕНО.
Только путем отсечения максимально возможных блоков, переменных и прочего.
Т.е. в программе осталось самое необходимое и то под 99.9 занятости. При добавлении буквально одного блока уже начинает глючить.
На сегодня для работы про мини картинка такая:
Скетч использует 17226 байт (56%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1355 байт (66%) динамической памяти, оставляя 693 байт для локальных переменных. Максимум: 2048 байт.

Если программа более 57% памяти то некорректно работает ?

Добавлено: 11 янв 2020, 13:57
Ingwar
Для максимального освобождения памяти, удалите загрузчик и залейте программу через программатор (через другую Ардуино).