Ви не увійшли.
Я по случаю разбирался что за компилятор языка "С++" работает в Ардуино и с удивлением понял, что они используют тот же пакет что и в AVRstudio он же в Visual Studio. То есть нет разницы где писать программу, компилятор одинаковый. Следовательно набор команд и размер исполняемого кода будет одинаков в любой среде разработки.
Проверка показала, что действительно все стандартные команды С++ успешно работают в среде Ардуино ИДЕ.Вывод берем любую книгу по С++ и спокойно кодим. Ну конечно с учетом аппаратных возможностей того контроллера который используем. Я сейчас с восторгом поюзал SAMD21, а для отпуска приберег ESP32 буду у моря под шум волны развлекаться.
http://i.piccy.info/i9/d2250eae156789f43e4d07e915e3596b/1626798501/47078/1436342/unnamed.jpg
Я по случаю разбирался что за компилятор языка "С++" работает в Ардуино и с удивлением понял, что они используют тот же пакет что и в AVRstudio он же в Visual Studio. То есть нет разницы где писать программу, компилятор одинаковый. Следовательно набор команд и размер исполняемого кода будет одинаков в любой среде разработки.
Проверка показала, что действительно все стандартные команды С++ успешно работают в среде Ардуино ИДЕ.
Вывод берем любую книгу по С++ и спокойно кодим. Ну конечно с учетом аппаратных возможностей того контроллера который используем. Я сейчас с восторгом поюзал SAMD21, а для отпуска приберег ESP32 буду у моря под шум волны развлекаться.
Спасибо
0z0n пише:http://forum.amperka.ru/threads/esp-8266-esp32-nodemcu-lua-%D0%B0%D0%B7%D1%8B-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F.12558/
Вот тут курс молодого бойца по есп. Там просто дохрена. Я все пробую, учусь. И человек который выкладывал адекватный. Отвечает.
это точно не то, тут он учит программировать на LUA, это скриптовый язык программирования и очень не похож на С даже близко.
Для меня LUA бесмысленный. так как С я уже немного знаю и мне просто в нем ориентироваться, кроме того С применятся везде, даже на десктопах и очень много примеров идет именно на С для разных плат Ардуино/ESP, а вот ЛУА очень мало где используется.я сейчас стою перед выбором использования из этих вариантов
1. Ардуино С++ -> https://doc.arduino.ua/ru/prog/
2. Обычный С++ -> https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/index.htmlРазница в том что 1 намного проще, но нет документации по фунциям которые можно использовать для этого контролера. Вариант 2 у меня будет план Б, он отлично документирован, но нужно больше учить С++.
Учусь на esp32 под его родным sdk-idf и думаю, как второй вариант может поможет(так как я не находил подробных уроков про родное апи, кроме как документации espressif) книга, недавно нашел, прям супер. Основные моменты программирования esp32 на sdk-idf, называется neil kolban esp32
Говорят, иногда помогает
У меня не вышло найти, поэтому и спрашиваю, может кто-то нашел
Возможно кто-то видел личные блоги по єтой теме, мне такое тоже пойдет
Для примера https://google.gik-team.com/?q=esp_restart()%3B
Говорят, иногда помогает
А на каком языке эта прослойка создана вы не думали? Если нет, то я отвечу - на самом что ни на есть обычном С
Уже ближе
Я вот как раз и говорю ТОЛЬКО О ЭТОЙ ПРОСЛОЙКЕ
Я хочу справочник не Си, а только вот этой прослойки. Я уже понял что официальной документации нет, только ентузиасты могут такое написать, я вот и ищу хоть какие-то описания этих функций и перечень этих функций.
Вашу позицию я уже понял, "документации нет, учи обычный СИ" не нужно это миллион раз повторять
Возможно кто-то видел личные блоги по єтой теме, мне такое тоже пойдет
производитель МК для своего МК выдумал
Все что производитель выдумал указано на официальном сайте в разделе документация https://www.espressif.com/en/support/documents/technical-documents и на гитхабе https://github.com/espressif
Все остальное - это уже написано любителями-энтузиастами на основе этой документации. И как вам уже говорилось никто из них не обязан (или не имеет желания/времени) сводить все это в единый справочник. Поэтому хватит уже holyorb-ить всем моск.
г0сть пише:Товарисч явно думает что для каждого МК производители выдумывают новый язык
вы мой пост хоть бы прочитали с кодом, там явно видно что производитель МК для своего МК выдумал свою просйлоку в АрдуиноС++
void EspClass::restart(void)
{
esp_restart();
}этот кусок кода явно говорит что данная функция создана ТОЛЬКО для ESP контроллеров
А на каком языке эта прослойка создана вы не думали? Если нет, то я отвечу - на самом что ни на есть обычном С
Спросишь "чем проще" - обидится :-)
Почему обижусь, нормальный вопрос.
"Проще" наличием синтаксического сахара, собственно фрейморк/нпрослойка АрдуиноС++ только и добавила упрощения в язык
1. https://github.com/platformio/platform-espressif32/blob/master/examples/arduino-blink/src/Blink.cpp
2. https://github.com/platformio/platform-espressif32/blob/master/examples/espidf-blink/src/blink.c
Код ардуино легче читается, разбит на более логичные куски setup()/loop().
А в Си
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "sdkconfig.h"
Из этого всего я понимаю назначение только stdio.h и driver/gpio.h, остальное не ясно зачем.
Например,freertos/FreeRTOS.h и freertos/task.h - зачем что бы мигать светодиодом?
Товарисч явно думает что для каждого МК производители выдумывают новый язык
вы мой пост хоть бы прочитали с кодом, там явно видно что производитель МК для своего МК выдумал свою просйлоку в АрдуиноС++
void EspClass::restart(void)
{
esp_restart();
}
этот кусок кода явно говорит что данная функция создана ТОЛЬКО для ESP контроллеров
Да, он просто глупостей каких-то начитался. Вон пишет "намного проще" - интересно, чем. Спросишь "чем проще" - обидится :-)
Товарисч явно думает что для каждого МК производители выдумывают новый язык
Прокатят такие "конвертеры" из "обычного С" в "Ардуино С" ?
Не прокатят
В arduino С++ куча синтасического сахара
void EspClass::restart(void)
{
esp_restart();
}
uint32_t EspClass::getHeapSize(void)
{
multi_heap_info_t info;
heap_caps_get_info(&info, MALLOC_CAP_INTERNAL);
return info.total_free_bytes + info.total_allocated_bytes;
}
uint32_t EspClass::getFreeHeap(void)
{
return heap_caps_get_free_size(MALLOC_CAP_INTERNAL);
}
uint32_t EspClass::getMinFreeHeap(void)
{
return heap_caps_get_minimum_free_size(MALLOC_CAP_INTERNAL);
}
uint32_t EspClass::getMaxAllocHeap(void)
{
return heap_caps_get_largest_free_block(MALLOC_CAP_INTERNAL);
}
и много чего еще, проблема в том что нету описания
Вот тут https://habr.com/ru/post/247663/ кстати сравнение этих двух вариантов С
У обычного С нету setup() и loop() функций ну и код выглядит по другому
Прокатят такие "конвертеры" из "обычного С" в "Ардуино С" ?
extern int setup(void);
extern int loop(void);
int main() { setup(); for (;;) loop(); }
И в обратную сторону
extern int main();
setup() { main(); }
loop() {}
Просто подключаем файл при компиляции.
У обычного С нету setup() и loop() функций ну и код выглядит по другому
Точно? Азохен вей :-(