Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

г0сть
2021-07-20 19:29:09
KY202H пише:

Я по случаю разбирался что за компилятор языка "С++" работает в Ардуино и с удивлением понял, что они используют тот же пакет что и в AVRstudio он же в Visual Studio. То есть нет разницы где писать программу, компилятор одинаковый. Следовательно набор команд и размер исполняемого кода будет одинаков в любой среде разработки.
Проверка показала, что действительно все стандартные команды С++ успешно работают в среде Ардуино ИДЕ.

Вывод берем любую книгу по С++ и спокойно кодим. Ну конечно с учетом аппаратных возможностей того контроллера который используем. Я сейчас с восторгом поюзал SAMD21, а для отпуска приберег ESP32 буду у моря под шум волны развлекаться.

http://i.piccy.info/i9/d2250eae156789f43e4d07e915e3596b/1626798501/47078/1436342/unnamed.jpg

KY202H
2021-07-20 18:48:22

Я по случаю разбирался что за компилятор языка "С++" работает в Ардуино и с удивлением понял, что они используют тот же пакет что и в AVRstudio он же в Visual Studio. То есть нет разницы где писать программу, компилятор одинаковый. Следовательно набор команд и размер исполняемого кода будет одинаков в любой среде разработки.
Проверка показала, что действительно все стандартные команды С++ успешно работают в среде Ардуино ИДЕ.

Вывод берем любую книгу по С++ и спокойно кодим. Ну конечно с учетом аппаратных возможностей того контроллера который используем. Я сейчас с восторгом поюзал SAMD21, а для отпуска приберег ESP32 буду у моря под шум волны развлекаться.

Dan232
2021-06-08 21:58:01
holyorb2 пише:

Спасибо

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

holyorb2
2020-12-31 21:20:35
г0сть пише:

Говорят, иногда помогает

У меня не вышло найти, поэтому и спрашиваю, может кто-то нашел

г0сть
2020-12-30 10:27:28
holyorb2 пише:

Возможно кто-то видел личные блоги по єтой теме, мне такое тоже пойдет

Для примера https://google.gik-team.com/?q=esp_restart()%3B
Говорят, иногда помогает

holyorb2
2020-12-30 10:09:06
г0сть пише:

А на каком языке эта прослойка создана вы не думали? Если нет, то я отвечу - на самом что ни на есть обычном С

Уже ближе smile

Я вот как раз и говорю ТОЛЬКО О ЭТОЙ ПРОСЛОЙКЕ wink

Я хочу справочник не Си, а только вот этой прослойки. Я уже понял что официальной документации нет, только ентузиасты могут такое написать, я вот и ищу хоть какие-то описания этих функций и перечень этих функций.

Вашу позицию я уже понял, "документации нет, учи обычный СИ" не нужно это миллион раз повторять smile
Возможно кто-то видел личные блоги по єтой теме, мне такое тоже пойдет

г0сть
2020-12-30 09:25:36
holyorb2 пише:

производитель МК для своего МК выдумал

Все что производитель выдумал указано на официальном сайте в разделе документация https://www.espressif.com/en/support/documents/technical-documents и на гитхабе https://github.com/espressif
Все остальное - это уже написано любителями-энтузиастами на основе этой документации. И как вам уже говорилось никто из них не обязан (или не имеет желания/времени) сводить все это в единый справочник. Поэтому хватит уже  holyorb-ить всем моск.

г0сть
2020-12-30 09:11:12
holyorb2 пише:
г0сть пише:

Товарисч явно думает что для каждого МК производители выдумывают новый язык

вы мой пост хоть бы прочитали с кодом, там явно видно что производитель МК для своего МК выдумал свою просйлоку в АрдуиноС++

void EspClass::restart(void)
{
    esp_restart();
}

этот кусок кода явно говорит что данная функция создана ТОЛЬКО для ESP контроллеров wink

А на каком языке эта прослойка создана вы не думали? Если нет, то я отвечу - на самом что ни на есть обычном С

holyorb2
2020-12-30 07:54:32
Kaka пише:

Спросишь "чем проще" - обидится :-)

Почему обижусь, нормальный вопрос.

"Проще" наличием синтаксического сахара, собственно фрейморк/нпрослойка АрдуиноС++ только и добавила упрощения в язык

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 - зачем что бы мигать светодиодом?

holyorb2
2020-12-30 07:49:01
г0сть пише:

Товарисч явно думает что для каждого МК производители выдумывают новый язык

вы мой пост хоть бы прочитали с кодом, там явно видно что производитель МК для своего МК выдумал свою просйлоку в АрдуиноС++

void EspClass::restart(void)
{
    esp_restart();
}

этот кусок кода явно говорит что данная функция создана ТОЛЬКО для ESP контроллеров wink

Kaka
2020-12-29 19:02:41

Да, он просто глупостей каких-то начитался. Вон пишет "намного проще" - интересно, чем. Спросишь "чем проще" - обидится :-)

г0сть
2020-12-29 16:04:28

Товарисч явно думает что для каждого МК производители выдумывают новый язык

holyorb2
2020-12-29 15:41:11
Honey пише:

Прокатят такие "конвертеры" из "обычного С" в "Ардуино С" ?

Не прокатят smile
В 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);
}

и много чего еще, проблема в том что нету описания

Honey
2020-12-29 11:18:42
holyorb2 пише:

Вот тут 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() {}

Просто подключаем файл при компиляции.

Kaka
2020-12-29 09:24:42
holyorb2 пише:

У обычного С нету setup() и loop() функций ну и код выглядит по другому

Точно? Азохен вей :-(

Підвал форуму