Обсуждаем контроллеры компании Atmel.
Ответить

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 09:40:06

Demiurg, вряд ли так просто получится. Размер всего проекта выходит около 5кБ, что больше ограничения 4кБ на размер кода в IAR.

Да и смысла под проприетарные компиляторы подстраиваться особого нет. Вы бы ещё CodeVision упомянули...

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 09:45:10

Demiurg писал(а):Попробовал запустить в AVR Toolchain, оказывается у вас зависимость от версии.
у меня зависимость от версии по минимуму, т.е. ниже определенной версии не будет поддержки __flash, а значит, и мои файлы не соберутся. но AVR Toolchain давно имеет соответствующую версию! почему у вас не собралось - не понимаю: я тестировал у себя от версии 4.9.2 и до 9.2.0
Demiurg писал(а):Это не моя личная хотелка.
это ваша личная хотелка - смотрите на WiseLord, он буквально за 5 минут запустил и на своем AVR (я тестировал на меге8, а он на меге328), и на stm32, и никаких скомпилированных проектов ему не потребовалось. я предоставил полностью готовые примеры с готовыми makefile для atmega8, в комплекте с протеусом - хоть собирайте сами, хоть тестируйте готовое! а остальное - "за свой счет" :)
Demiurg писал(а):при этом без опроса флага готовности
самая порочная практика из всех, что я встречал - игнорировать рекомендации даташита, полагаясь на какие-то задержки. я так не делал, и не буду делать. и вам не советую :)

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 10:48:58

Еб... Вы один из самых упоротых и узколобых собеседников. Это не эмоции. Мне есть с чем сравнивать. Я не знаю как вы пришли в программирование микроконтроллеров. Лично я, как и многие другие от железа. И программирование как таковое малая часть нашей деятельности. И вы сами по форумам видите, что у многих ситуация в разы хуже, чем у меня, к примеру.
Дисплеи по даташитам работают штатно, если соблюдать времянки. Без опроса флага готовности.
А впрочем, что я время теряю. По проекту меню откланиваюсь. ебитесь варитесь сами в собственном соку.
У меня на нынешний момент была единственная проблема - с необязательным параметром. Наверное пришло время решать её самому. Лично.

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 12:39:50

ARV, кстати, те модифицированные мною исходники не пробовали под windows собрать? Как avr, так и stm32 вариант?

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 12:47:52

нет, не пробовал. у меня как-то с GIT не складывается... только и могу поглядеть файлы в браузере. с stm32 вообще никак не связан (ни тулчейна нет, ни МК), а под AVR не увидел какой-то заметной разницы в ваших модификациях. даже несколько удивлен количеству "лишних" файлов :)

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 13:01:35

ARV писал(а):у меня как-то с GIT не складывается
А что тогда вместо него предпочитаете? SVN?

Добавлено after 3 minutes 52 seconds:
ARV писал(а):даже несколько удивлен количеству "лишних" файлов
Всё эти файлы avr_fmenu.* - это файлы проекта, чтобы открыть код в QtCreator. По сути, они не нужны для сборки. Достаточно только в PATH иметь make и компилятор (avr-gcc и arm-none-eabi-gcc соответственно).

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 13:02:01

WiseLord писал(а):А что тогда вместо него предпочитаете?
вы будете смеяться: внешний диск :)))
я использую Eclipse, и много раз хотел как-то приспособить либо встроенную в него возможность контроля версий, либо при помощи плагинов что-то подключить... но так и не уразумел, как всем этим добром пользоваться, чтобы "на кнопочку нажал - и готово". поэтому вот так как-то...

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 13:20:40

ARV писал(а):я использую Eclipse, и много раз хотел как-то приспособить либо встроенную в него возможность контроля версий, либо при помощи плагинов что-то подключить... но так и не уразумел, как всем этим добром пользоваться
А я пользуюсь QtCreator, в котором тоже есть поддержка разных систем контроля версий, но я эти функционалом не пользуюсь.

Вот и Вам я бы посоветовал изучить эти несколько команд консольного git, и пользоваться ими. А когда войдёте во вкус и поймёте, как это работает "снизу" - можно положить и IDE- шным функционалом пользоваться, если возникнет желание.

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 13:25:32

WiseLord писал(а):я бы посоветовал изучить эти несколько команд консольного git
да не вы первый мне это советуете... но я очень ленивый: это ж надо консоль открывать, команды вбивать... еще помнить их... не, мне или "кнопочку", или уж по-старинке - на внешний диск Total Commander-ом :)))

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

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 14:18:59

Нет, по мне - написание кода без истории и системы контроля версий - это просто мазохизм.

Помнить максимум десяток простых (двухсловных) команд - это проще, чем помнить для всего объёма кода, зачем вот в этом месте была заведена какая-то переменная год назад, и почему два года назад я вот тут сделал вот так.

Вот минимальный список команд - просто для локальной работы:
Код:
git init - создать в некотором рабочем каталоге git репозиторий
git add <относительный путь> - добавить текущие изменения в файл(ах)/каталогу в список для индексации
gid commit - зафиксировать список для индексации (создать коммит в истории с текущим состоянием дерева проекта)
git log - посмотреть историю коммитов
git show <хэш коммита> - посмотреть изменения, сделанные в этом комите.

Этого вполне достаточно просто для хранения истории своих изменений в каталоге "на внешнем диске"
А если захочется свой локальный репозиторий на тот же Github отправлять или оттуда забирать - то ещё понадобятся пара команд:
Код:
git push - отправить текущее состояние (последний коммит со всей историей) на удалённый сервер
git pull - забрать последние изменения с сервера (если, к примеру, работали на другой машине и пушили раньше оттуда на сервер)

А дальше уже есть другие "фишки", типа как работа с несколькими ветками кода - когда можно временно переключиться на другую ветку, сделать в ней пару "рабочих" коммитов, потом вернуться на основное состояние и работать дальше там. Но это уже после "вхождения во вкус".

Не так уж и сложно запомнить, как по мне.

А особая прелесть - когда есть несколько проектов с похожим кодом (кусками кода), и нужно изменения в одном проекте забрать в другой - тоже всё упрощается донельзя. Но это уже чуть более высокий уровень владения Git-ом.

Добавлено after 17 minutes 37 seconds:
А вот небольшая иллюстрация локальной работы с Git в изначально пустом каталоге:
Изображение

Re: FlexMenu - решение вопросов меню. Зацените.

Пт май 08, 2020 14:31:12

теорию я знаю. но применять её на практике... увы.
Eclipse дает мне возможность иметь локальную историю изменений, я насроил до 100 предыдущих вариантов - и мне пока хватает без всяких Git-ов.
а осальное для работы с Git в Eclipse совсем не интуитивно (для меня). а я уже устал заниматься тем, что всякий раз что-то углубленно изучать и настраивать только для того, чтобы потом пару раз поиспользовать.

мне бы кнопочку...

Re: FlexMenu - решение вопросов меню. Зацените.

Ср авг 19, 2020 21:38:57

В общем собрал все вместе:

Re: FlexMenu - решение вопросов меню. Зацените.

Ср авг 19, 2020 22:12:36

ну так это у вас полчилоь классическое меню, без возможности делать динамичекое название пункта, без встроенного редактирования параметров...
по id перебирать варианты... оно, конечно, полезно, но скучновато...

Re: FlexMenu - решение вопросов меню. Зацените.

Чт авг 20, 2020 05:20:23

Я же вам писал, запятую поставьте там где мне надо

Re: FlexMenu - решение вопросов меню. Зацените.

Чт авг 20, 2020 09:16:43

Dimon456 писал(а):запятую поставьте там где мне надо
:shock: ???????????

Re: FlexMenu - решение вопросов меню. Зацените.

Чт авг 20, 2020 13:36:01

ARV, все равно чуть ли не для каждого пункта меню вы будете писать свою функцию, универсальности здесь нет и не зачем усложнять высокоинтеллектуальными кодами в которых трудно разобраться.
Попробуйте написать мой пункт меню T_voltages на своем FlexMenu с тем же алгоритмом и стем же отображением на lcd?

Re: FlexMenu - решение вопросов меню. Зацените.

Чт авг 20, 2020 14:04:52

Dimon456 писал(а):все равно
отнюдь.
я задумал упростить типичные пункты меню, сделав из сразу готовыми фукнциями. при этом возможность сделать свою уникальную для вывода уникального содержимого так же имеется. вы же исключили в принципе возможность упрощения чего-либо. так что не все равно. в качестве универсального решения вы предложили самое примитивное. да, оно 100% универсально - бери напильник и допиливай под себя.
я преложил решение, которое хоть на 10%, но позволяет обойтись без напильника. множество настроек могут быть реализованы изначальным вариантом FlexMenu практически без усиилий программиста, разве что описать тип данных придется, и выделить ячейки EEPROM под них.

Re: FlexMenu - решение вопросов меню. Зацените.

Пт авг 21, 2020 08:54:21

Demiurg писал(а):при этом без опроса флага готовности
самая порочная практика из всех, что я встречал - игнорировать рекомендации даташита, полагаясь на какие-то задержки. я так не делал, и не буду делать. и вам не советую :)

Да ладно! Все времена выполнения команд как раз таки в ДШ чётко расписаны. Да и к чему эти излишние телодвижения с готовностью и с дополнительным пином?

Re: FlexMenu - решение вопросов меню. Зацените.

Пт авг 21, 2020 09:56:46

А в чем сакральный смысл наличия бита готовности, если можно по задержкам?

Имхо, дело в том, что задержки указываются для определенных условий, например, тактовой частоты контроллера дисплея. А разные производители разных дисплеев вольны выбирать разные частоты... И разработчик обречен на штудирование документации при каждой смене поставщика или производителя... Или разработчик делает по готовности, и спит спокойно при любых ветрах перемен.

Что практичнее?

Re: FlexMenu - решение вопросов меню. Зацените.

Пт авг 21, 2020 12:09:41

ARV, я даже и не думал что так будет работать
Ответить