Как стать автором
Обновить

Комментарии 23

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

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

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

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

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

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

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

espruino на js`e

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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

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

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

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

Ну, для самообразования и так сойдет :) Описали бы подробнее архитектуру, структуру байткода и пр, чтобы это могло и другим пригодиться.
Спасибо за совет. Пожалуй так и сделаю.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации