Проблема работы блока Меню при большом обьеме скетча
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Проблема работы блока Меню при большом обьеме скетча
Почему? Эти строки как раз в глобальных переменных сейчас и лежат. В массивах.
Автор программы FLProg.
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Проблема работы блока Меню при большом обьеме скетча
А ключевое слово - в глобальных переменных сейчас и лежат.
Последний раз редактировалось nalnik 03 ноя 2016, 21:59, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.
- Dev1
- Майор
- Сообщения: 1045
- Зарегистрирован: 12 июл 2016, 18:04
- Откуда: Гондурас
- Поблагодарили: 3 раза
Проблема работы блока Меню при большом обьеме скетча
Файл для проверки https://yadi.sk/d/lDWvG_GDxuEFEnalnik писал(а):Dev1На глобальные переменные это не влияет.
Предложи еще иероглифы
Выложи что сам написал - обсудим.
Исходный вариант без изменений:
Скетч использует 12 978 байт (40 памяти устройства. Всего доступно 32 256 байт.
Глобальные переменные используют 1 881 байт (91 динамической памяти, оставляя 167 байт для локальных переменных. Максимум: 2 048 байт.
Недостаточно памяти, программа может работать нестабильно.
Мой вариант для проверки глобальной памяти где все надписи приведены к названиям меню по дефолту М-1, М-1.1, М-1.1.1 и т.д, удалены все лишние записи дополнительных строк и строка на выходе "val":
Скетч использует 11 968 байт (37 памяти устройства. Всего доступно 32 256 байт.
Глобальные переменные используют 1 411 байт (68 динамической памяти, оставляя 637 байт для локальных переменных. Максимум: 2 048 байт.
Памяти хватает.
Win10-64 FLProg v8.2.3 Portable IDE 1.8.19, 2,x,x 

- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Проблема работы блока Меню при большом обьеме скетча
Dev1
Что то Вы поздно проснулись.
Так и на фиг мне такое меню,
м-1-2
м-2-3
и что там сэкономил один и четыре килобайта
на одно подменю не хватит - а и где сама программа ?
И ваще - молчим и ждем ответа от support
Что то Вы поздно проснулись.
Так и на фиг мне такое меню,
м-1-2
м-2-3
и что там сэкономил один и четыре килобайта
на одно подменю не хватит - а и где сама программа ?
И ваще - молчим и ждем ответа от support
Последний раз редактировалось nalnik 03 ноя 2016, 22:54, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.
Проблема работы блока Меню при большом обьеме скетча
Dev1, Спасибо за предложения, но уменьшая размер текста и даже удаления всех дополнительных строк проблему не решит, я сократил по мин текст и удалил все дополнительные строки, скетч загрузился но меню не работает, так как размер глобальных
переменных все равно слишком велик.

Добавлено (03.11.2016, 23:15)
---------------------------------------------
И все же я немного недопонимаю, почему оно не работает если еще остается память для глобальных переменных, достигая 60% памяти глобальных переменных все не работает а остальные 40% для чего ?
переменных все равно слишком велик.

Добавлено (03.11.2016, 23:15)
---------------------------------------------
И все же я немного недопонимаю, почему оно не работает если еще остается память для глобальных переменных, достигая 60% памяти глобальных переменных все не работает а остальные 40% для чего ?
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Проблема работы блока Меню при большом обьеме скетча
Lazary
В текстах удали - не определенные стоки
строк не должно быть больше двух - у тебя есть заполненная строка и две не определенных - крайнею удали
проверь
В текстах удали - не определенные стоки
строк не должно быть больше двух - у тебя есть заполненная строка и две не определенных - крайнею удали
проверь
Последний раз редактировалось nalnik 03 ноя 2016, 23:22, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.
Проблема работы блока Меню при большом обьеме скетча
nalnik, Я вообще удалил все строки которые боли, все доп стрелочки и пробелы, обьем уменьшился да, но все же это не совсем решение так как все равно остается ограничение на обьем памяти переменных, много пунктов меню с под меню не сделать
Проблема работы блока Меню при большом обьеме скетча
Приветствую Сергей.support писал(а):Основное место в переменных занимают строки текста. Остальное мелочи(в большинстве своём булеановские или байты). Естественно избавится полностью от строк не получится( что то выводиться же должно) но я по стараюсь перенести их в память программы (PROGMEM) которой заметно больше. Пока разбираюсь с этим. Это не так просто.
Может и так знаете, но есть такая форма записи
Serial.println(F("This string will be stored in flash memory")); вот тут подробнее
Но это косается только передачи в Com-порт
Ну и как я понял, про Ключевое слово PROGMEM вы тоже уже знаете.
Добавлено (04.11.2016, 10:31)
---------------------------------------------
Попробовал перенести в массивы строк в память на основе приведенной выше статьи, получается.
сгенерирвал меню из трех пунктов затем заменил часть кода в IDE
String _menuItemsNameArray[3] = {"Menu1", "QQQQQQ", "NEEE"};
Заменил на
[spoiler=Спойлер]const char string_0[] PROGMEM = "Menu1"; // "String 0" и т.д. - это содержимое строк; если необходимо меняйте его
const char string_1[] PROGMEM = "QQQQQQ";
const char string_2[] PROGMEM = "NEEE";
// Теперь создаем таблицу с отсылками к этим строкам:
const char* const string_table[] PROGMEM = {string_0, string_1, string_2};
char buffer[20]; // массив был достаточно велик, чтобы вместить даже самую большую строку[/spoiler]
ниже нашел строку
_MenuBlock_396801281_MNO = _menuItemsNameArray[((_MainMenus[0].currentItem ).menuNameIndex - 1)];
заменил таким кодом:
strcpy_P(buffer, (char*)pgm_read_word(&(string_table[((_MainMenus[0].currentItem ).menuNameIndex - 1)])));
_MenuBlock_396801281_MNO= String (buffer);
Последний раз редактировалось Слимпер 04 ноя 2016, 10:34, всего редактировалось 1 раз.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Проблема работы блока Меню при большом обьеме скетча
Ну примерно это я и делаю. Первые успехи уже есть. Но ещё работаю.


Автор программы FLProg.
Проблема работы блока Меню при большом обьеме скетча
support, Вы мне потом объясните как все сделать чтобы заработало как нужно, прошу объяснить подробно как для человека который в коде не чего не понимает, мои познания программирования для ардуино только в FLProg. Спасибо!
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
Проблема работы блока Меню при большом обьеме скетча
Подождите немного. Я как раз сейчас работаю. Ничего делать не надо, я переделываю компилятор в FLProg. Вроде получается. На текущий момент при стандартной компиляции проекта на вашем проекте ситуация такая.

И это при 40!!! пунктах меню. Честно говоря очень много.

И это при 40!!! пунктах меню. Честно говоря очень много.
Автор программы FLProg.
Проблема работы блока Меню при большом обьеме скетча
support, Спасибо большое за помощь, результаты просто замечательные, ждем конечного результата, держите по возможности нас в курсе как все продвигается.
Добавлено (17.11.2016, 17:22)
---------------------------------------------
support, Здравствуйте, можно поинтересоваться как проходят успехи с решением данной проблемы ? На когда примерно ожидать конечные результаты, чтобы хоть примерно ориентироваться по срокам сколько ожидать. Спасибо!
Добавлено (17.11.2016, 17:22)
---------------------------------------------
support, Здравствуйте, можно поинтересоваться как проходят успехи с решением данной проблемы ? На когда примерно ожидать конечные результаты, чтобы хоть примерно ориентироваться по срокам сколько ожидать. Спасибо!
Проблема работы блока Меню при большом обьеме скетча
Так уже вышла версия 2.1.1 в которой это уже решено.Lazary писал(а):Здравствуйте, можно поинтересоваться как проходят успехи с решением данной проблемы ? На когда примерно ожидать конечные результаты, чтобы хоть примерно ориентироваться по срокам сколько ожидать. Спасибо!
Проблема работы блока Меню при большом обьеме скетча
Слимпер, Спасибо за подсказку, не заметил вовремя что уже вышла новая версия
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей