Каково отношение файла Arduino .ino к main.cpp?

Является ли файл .ino альтернативой файлу main.cpp?

Если да, то не мог бы кто-нибудь объяснить структуру файла .ino в main.cpp и его связь?

, 👍11

Обсуждение

... ... Что ... ... ?, @Majenko

Не надо откладывать. Английский не мой родной язык, и у меня не возникло проблем с этим вопросом., @Jot

Кроме того, закрытие обычно применяется в случае явно не относящихся к теме вопросов или более серьезных нарушений. Почему это было закрыто, а не просто отложено для разъяснений? Голосование за возобновление работы., @JRobert

@JRobert, ответ Джота хороший. Вопрос следует отредактировать., @Juraj


1 ответ


Лучший ответ:

11

Arduino использует компилятор gcc. Разумеется, этому компилятору нужна обычная функция main. Arduino поместил поверх этого слой с помощью setup и loop.

Скрытая функция main для базовых плат Arduino находится в main.cpp (нажмите на него, чтобы увидеть).
Вы видите, что вызывается init, setup, loop и еще несколько вещей.

Чтобы научиться использовать setup и loop, вы можете попробовать несколько примеров. Они находятся в меню Arduino IDE, а также онлайн.

Все файлы .ino объединяются и представляются компилятору для компиляции как один файл .cpp. Библиотеки Arduino также компилируются из исходного кода, и все скомпоновано в двоичный файл.

Когда вы научитесь использовать setup и loop, попробуйте Пример мигания без задержки. Его можно использовать для запуска различных программных таймеров, выполнения любых задач и обеспечения бесперебойной работы.

,

Это решает мой запрос, спасибо за объяснение функции int main в main.cpp. Также я бы попробовал пример мигания без задержки, как вы предложили., @Lance

Ссылка на main.cpp перемещена в новый репозиторий [вот новое местоположение](https://github.com/arduino/ArduinoCore-avr/blob/master/cores/arduino/main.cpp)., @Luke Bayes

@LukeBayes Спасибо, я исправил ссылку в своем ответе. Старый стандартный avr был перенесен в «ArduinoCore-avr»., @Jot