Programming microcontrollers
Developing for Arduino
DIY
Comments 23
0

Интересно, есть ли способы программировать esp, кроме arduino и lua?

+1
Наверное самый правильный, это использование SDK от производителя, есть еще и неофициальное SDK. В нем можно отключить много лишнего, получив дополнительную свободную память. Ну и питон имеется, и бейсик. Еще можно просто собрать прошивку в онлайн конструкторе из готовых компонентов.
0

А можете что-нибудь посоветовать человеку, который умеет писать программы на чистом си для avr микроконтроллеров? Изучать lua?
Или использовать Arduino IDE, которая для мигания светодиодом использует много килобайт?

0

А почему собственно не lua? Дока по языку даже меньше чем Dive into Python.

0
Если вы умеете писать на Си, то логично на нем и писать.
SDK от Espressif — на Си.
Arduino — это IDE. Что мешает писать код, который не требует много памяти для мигания светодиодом?
Или вы имеете в виду память ПК?
Можно использовать Eclipse с SDK от Espressif- только на ПК он еще больше памяти отъедает и подтормаживает.
Мне больше нравится использовать Platformio. Он поудобнее чем Eclipse и Arduino, но тут смотря кто к чему привык.
+1
Пишите в Arduino IDE на чистом Си без библиотек Wiring
Ведь что такое Arduino IDE? Посредственный редактор, GCC компилятор, загрузчик (под разные МК) и куча разных библиотек.
Например, для ESP8266 можно в IDE вызывать нативные функции ESP SDK
А Wiring хорош для переноса кода с одного МК на другой.
+1
Arduino IDE ещё божески (для avr). Посмотрите для сравнения сколько весит бинарник blink.ino для ESP8266. Ну и что? Если памяти вагон…
0

Я привык к 8 килобайтами памяти на avr. И такое расходование памяти Arduino IDE мне не кажется правильным.

0
Можно использовать platformio вместо Arduino IDE, больше настроек, больше контроля и есть совместимость с Arduino IDE. Однако в таком большом размере бинарника в случае esp8266 виноваты огромные библиотеки Espressif, которые при каждой сборке линкуются к коду.
0

Два цикла while ввели меня в ступор…
Кстати, переменная key содержит один код клавиши или маску?

0
Функция getkey() возвращает байт, в котором каждый бит соответствует текущему состоянию восьми кнопок. Несколько циклов while как раз таки результат текущей недоработанности. Следует добавить прерывание по нажатию. Сейчас прерывания доступны только для событий в спрайтах (столкновение, выход за границы экрана).
+1
Почти все игры написаны за несколько часов, больше для примера. Так что у любой могут оказаться недостатки. Но она не такая и бесконечная, рано или поздно змейка станет слишком длинной и съест свой хвост.
0
Если честно, я ничего не понял.

Виртуальная машина эмулирует что, Спектрум, 8086, Gameboy, БЭСМ, что-то другое? Приведенный выше код чем компилируется и чем выполняется? Какие игры запускаются, от какой платформы?

Автору, если уж вы описываете свое творение, пишите с учётом того что человек ваш проект видит первый раз в жизни.
0
Ничего не эмулирует. Выполняет собственный байткод. Компилируется онлайн компилятором, ссылка в последнем абзаце. Игры свои собственные запускает.
0
Спасибо, значит я с этим перепутал — github.com/lualiliu/esp32-gameboy

Ну, для самообразования и так сойдет :) Описали бы подробнее архитектуру, структуру байткода и пр, чтобы это могло и другим пригодиться.
Only those users with full accounts are able to leave comments., please.