Если решатели ОДУ использовать нельзя, судя по всему, то можно попробовать поискать в тех же библиотеках решатели для СДУ (стохастических). Наверняка что-нибудь да найдётся. Потом «прикрутить» к своей программе похожими способами.
Надо же, работает. Инструкции: скачайте первое видео из оригинальной статьи (elife-17072-media1.mp4), разверните на весь экран, зациклите и запустите (я смотрел не в точку, а ближе к краю чёрного кольца). Переключение направления может быть как при повторе, так иногда и в процессе проигрывания. Мои серые сферы отличаются от тех, что изображены на втором видео (elife-17072-media2.mp4). Может быть это из-за того, что в центр не смотрю.
Ломать GX Works 2 не обязательно, можно обновить дату (счётчик) в реестре и у вас снова 60-дневная полная демо-версия. Это относится к версии 1.5xx.
Особенно здесь актуально наличие си-подобного языка ST
Это паскале-подобный язык. Очень урезанный и многие производители сред разработки для своих ПЛК делают расширения стандарта МЭК (указатели, ООП и пр.).
Вообще, на ST пишут сложные модульные программы, тогда как простую (или очень простую) логику можно и на LD реализовать. Поддерживать программу на ST куда проще, т.к. есть свобода в оформлении кода. Некоторые вещи без ST выглядят просто ужасно, например, реализация протокола обмена с устройством.
Подскажите недорогие системы крепления мониторов способами как на картинках. Можно ли собрать что-то на типовых трубах для сборки каркасов, что в хозтоварах продаются? Или же нужно покупать специальные крепления для нужного количества мониторов?
В общем, изобретал ли кто свои велосипеды на эту тему и каков результат?
Я в Proteus отлаживал RTOS, также отлаживал работу специального класса, который работает с EEPROM как с мелкой файловой системой (EFS: EEPROM File System). Ещё писал панельный файловый менеджер для терминала, который работает с виртуальной sd-картой. С JTAG'ом дольше бы разбирался, а в нём всё быстро можно промоделировать.
У меня к нему никаких претензий особых нет, что может, то он делает. Я и 10% не знаю его возможностей, а пользуюсь только тем, что на виду.
Что касается регистров, то раньше я отладку делал по способу 2, который сейчас не работает. Там плюсы студии прибавлялись к плюсам Proteus и всё было просто замечательно. Для обучения вообще идеальная комбинация.
Симулятор в студии нельзя сравнивать с возможностями по симуляции в Proteus, он мощнее гораздо. Одно дело голый мк гонять, и совсем другое, когда он может обращаться из симуляции к реальным устройствам или конфигурационной программе на ПК.
VisualMicro не пробовал, денег на него будет жалко. JTAG отладчик при правильном использовании может покрыть большую часть потребностей по отладке. В Proteus можно отлаживать и части кода и строить красивые графики. К примеру, я в нём отлаживал проект AVR DDS 2.0 — прямой цифровой синтез сигнала на AVR. Просто красота.
Мне лень искать/писать httpd для платы W5100. Пусть будет избыточным пока, главное чтобы функционал работал. Лишнее постепенно обрежу.
У меня есть специальный обёрточный код для прерываний, я могу добавить его в arduino-framework и управлять прерываниями как мне нужно.
Если можешь разобраться в коде, то ограничений особых нет.
От неё остался Arduino Framework с готовой стандартной структурой. Этот framework автоматически разбирается в Arduino-Makefile. Я когда-то пытался создать подобный Makefile, чтобы использовать Arduino Framework, но моих познаний не хватило для этого и я забросил идею использовать классы из этого набора, а очень хотелось.
Потом случайно нашёл набор для сборки на github и понял, что это как раз именно то, чего я хотел. Теперь я могу очень просто совмещать свой старый наработанный код с ардуиновским. Это экономит время и упрощает работу.
Поскольку я пользуюсь сложными проектами, то без отладчика соваться туда нет смысла, а вывод в консоль — это черепашья скорость, вот я и нашёл способ как допилить ещё одну недостающую часть.
Теперь я могу к примеру собрать шлюз modbus tcp в modbus rtu и спокойно его отлаживать, а железо то же, что для AMS. Такой шлюз стоит около 20 тыс руб, а я могу собрать его в упрощённом виде за 2 тыс руб. Есть разница? Для простых применений зачем платить больше на порядок?
Если вы хотите убрать Arduino IDE, то как использовать его framework? Вы можете подключить его классы отдельно? Или может напишите всё то же самостоятельно? Зачем?
Не работал с stm8, а IAR разве не поддерживает? На сахаре есть специальная ветка по нему. Отладчик купил на dvrobot, но не помню поддерживает ли он stm8, а так всё работает. Дешево и сердито.
Есть такой проект, кое-где популярный, называется Arduino Mega Server (здесь есть серия статей о нём). Попробуйте его отладить и поймёте про что идёт речь. Точнее будет идти во второй части, но Способ 3 и картинка к нему — это почти что AMS и есть (его отладка в железе). Сама идея мне понравилась, но вот сопровождение проекта никуда не годится. Достаточно почитать форум проекта.
Для мелких мк вполне можно обойтись и без отладчика, но когда у вас ATmega128 или ATmega256 и кода под завязку, то без отладчика там делать просто нечего. Вот у вас есть плата Arduino Mega 2560, вы хотите её использовать по-своему, «без ардуиновских извращений». Нужно купить настоящий отладчик, который стоит где-то в районе ~ 10 000 р. А я могу показать как потратить ~1500 р., чтобы получить почти то же (JTAG ICE mkII либо JTAG ICE I, но он не поддерживает ATmega256). Примерно столько стоит китайский комплект Arduino Mega 2560 + W5100.
Вы сможете отлаживать код в AVR Studio 4 (немножко криво и выглядит как костыль, но всё-таки сможете и это лучше, чем ничего). Если есть возможность, то почему бы её не использовать?
А вообще, я не верю в бесплатную отладку AVR от Atmel, лучше буду использовать ARM.
Я подозревал, что проект собирается во временных файлах, но этот путь тупиковый для дальнейшего изложения. Кармы нет, плюсовать не могу.
Я проверил работу с elf-файлом из временной папки. Да, можно его использовать. Я боялся, что в Proteus не будет доступа к исходникам, т.к. у него есть такая особенность, что файл dsn должен находиться в папке с проектом. Но исходники доступны в списке выбора.
У такого подхода есть минус — вы не контролируете параметры выходного объектного файла и его отладочную информацию. Из-за этого вы не сможете подгрузить его в AVR Studio 4 (проверено). Да, доступ к файлу есть, но он бесполезен, если вы используете 4-ку.
«Грешить с руки» на что? И где гарантии что код с -O0 будет делать то же, что и с -Os? Я вот не разбирался с устройством задержек, но часто их использую. Смотрим delay.h:
#ifndef __OPTIMIZE__
# warning «Compiler optimizations disabled; functions from <util/delay.h> won't work as designed»
#endif
> Достаточно любым архиватором открыть файлы ардуины и скопировать оттуда компилятор. Затем только по известным шагам, коих тучи в инете, добавить путь для аврки в AvrStudio.
Это проще, чем установить среду Arduino? И библиотеки автоматом подключатся (статья об этом)? И где об этом написано?
> Поэтому, если опыта не особо много, не стоит грешить на с руки — проверьте компилятор.
Может покажите как собрать скетч компилятором avr-gcc без Arduino IDE и Arduino-Makefile? Людям не пришлось бы выполнять кучу лишних действий, описанных в статье.
В общем, обычные программеры могут посмотреть на статью под другим углом. Если вы купили плату Arduino Mega 2560 и Ethernet Shield W5100 к нему, но лень искать рабочие исходники для работы с сетью и картой в стиле C++, то вы можете использовать готовые библиотеки Arduino. Вот о чём также речь идёт.
Я не пользователь Arduino, а как раз тот, кто хочет использовать их наработки с дешёвыми платами. И мне привычно как раз использовать C++.
А как указать опции формата отладочного файла? Дело в том, что не всякий elf скушает AVR Studio 4. Если посмотреть на мой Makefile, то там можно увидеть некоторые дополнительные опции. Без них студия просто аварийно завершается при попытке открыть elf файл.
Я долго искал нужную комбинацию, так как без неё невозможно выполнять отладку в железе.
Немного не понятно. Если я хочу послать серию байт и в этом же методе (потоке) получить ответ, то как будет выглядеть код? К примеру, я хочу реализовать одну из modbus-rtu функций для мастера.
Может быть что-то из этого подойдёт: Обзор доступных библиотек для численного решения жёстких ОДУ
Это паскале-подобный язык. Очень урезанный и многие производители сред разработки для своих ПЛК делают расширения стандарта МЭК (указатели, ООП и пр.).
Вообще, на ST пишут сложные модульные программы, тогда как простую (или очень простую) логику можно и на LD реализовать. Поддерживать программу на ST куда проще, т.к. есть свобода в оформлении кода. Некоторые вещи без ST выглядят просто ужасно, например, реализация протокола обмена с устройством.
В общем, изобретал ли кто свои велосипеды на эту тему и каков результат?
Те, кто освоят JTAG хотя бы по моему способу, уйдут в большой отрыв в своих начинаниях по сравнению со своими сферическими коллегами. Это я обещаю.
У меня к нему никаких претензий особых нет, что может, то он делает. Я и 10% не знаю его возможностей, а пользуюсь только тем, что на виду.
Что касается регистров, то раньше я отладку делал по способу 2, который сейчас не работает. Там плюсы студии прибавлялись к плюсам Proteus и всё было просто замечательно. Для обучения вообще идеальная комбинация.
VisualMicro не пробовал, денег на него будет жалко. JTAG отладчик при правильном использовании может покрыть большую часть потребностей по отладке. В Proteus можно отлаживать и части кода и строить красивые графики. К примеру, я в нём отлаживал проект AVR DDS 2.0 — прямой цифровой синтез сигнала на AVR. Просто красота.
У меня есть специальный обёрточный код для прерываний, я могу добавить его в arduino-framework и управлять прерываниями как мне нужно.
Если можешь разобраться в коде, то ограничений особых нет.
Потом случайно нашёл набор для сборки на github и понял, что это как раз именно то, чего я хотел. Теперь я могу очень просто совмещать свой старый наработанный код с ардуиновским. Это экономит время и упрощает работу.
Поскольку я пользуюсь сложными проектами, то без отладчика соваться туда нет смысла, а вывод в консоль — это черепашья скорость, вот я и нашёл способ как допилить ещё одну недостающую часть.
Теперь я могу к примеру собрать шлюз modbus tcp в modbus rtu и спокойно его отлаживать, а железо то же, что для AMS. Такой шлюз стоит около 20 тыс руб, а я могу собрать его в упрощённом виде за 2 тыс руб. Есть разница? Для простых применений зачем платить больше на порядок?
Если вы хотите убрать Arduino IDE, то как использовать его framework? Вы можете подключить его классы отдельно? Или может напишите всё то же самостоятельно? Зачем?
Есть такой проект, кое-где популярный, называется Arduino Mega Server (здесь есть серия статей о нём). Попробуйте его отладить и поймёте про что идёт речь. Точнее будет идти во второй части, но Способ 3 и картинка к нему — это почти что AMS и есть (его отладка в железе). Сама идея мне понравилась, но вот сопровождение проекта никуда не годится. Достаточно почитать форум проекта.
Вы сможете отлаживать код в AVR Studio 4 (немножко криво и выглядит как костыль, но всё-таки сможете и это лучше, чем ничего). Если есть возможность, то почему бы её не использовать?
А вообще, я не верю в бесплатную отладку AVR от Atmel, лучше буду использовать ARM.
Я проверил работу с elf-файлом из временной папки. Да, можно его использовать. Я боялся, что в Proteus не будет доступа к исходникам, т.к. у него есть такая особенность, что файл dsn должен находиться в папке с проектом. Но исходники доступны в списке выбора.
У такого подхода есть минус — вы не контролируете параметры выходного объектного файла и его отладочную информацию. Из-за этого вы не сможете подгрузить его в AVR Studio 4 (проверено). Да, доступ к файлу есть, но он бесполезен, если вы используете 4-ку.
#ifndef __OPTIMIZE__
# warning «Compiler optimizations disabled; functions from <util/delay.h> won't work as designed»
#endif
> Достаточно любым архиватором открыть файлы ардуины и скопировать оттуда компилятор. Затем только по известным шагам, коих тучи в инете, добавить путь для аврки в AvrStudio.
Это проще, чем установить среду Arduino? И библиотеки автоматом подключатся (статья об этом)? И где об этом написано?
> Поэтому, если опыта не особо много, не стоит грешить на с руки — проверьте компилятор.
Может покажите как собрать скетч компилятором avr-gcc без Arduino IDE и Arduino-Makefile? Людям не пришлось бы выполнять кучу лишних действий, описанных в статье.
В общем, обычные программеры могут посмотреть на статью под другим углом. Если вы купили плату Arduino Mega 2560 и Ethernet Shield W5100 к нему, но лень искать рабочие исходники для работы с сетью и картой в стиле C++, то вы можете использовать готовые библиотеки Arduino. Вот о чём также речь идёт.
Я не пользователь Arduino, а как раз тот, кто хочет использовать их наработки с дешёвыми платами. И мне привычно как раз использовать C++.
Я долго искал нужную комбинацию, так как без неё невозможно выполнять отладку в железе.