Программирование ARDUINO

КВАНТОЛАБ г. Полярный



Arduino, Синтаксис языка (C++ & Wiring)

Arduino, Синтаксис языка (C++ & Wiring)

18 марта

В среде Arduino IDE применяется язык С++, поверх которого установлен фреймворк Wiring, добавляющий свои библиотеки, функции и объекты такие как - (Для простого примера) Serial, pinMode, analogWrite,

В среде Arduino IDE применяется язык С++, поверх которого установлен фреймворк Wiring, добавляющий свои библиотеки, функции и объекты такие как - (Для простого примера) Serial, pinMode, analogWrite, tone и т.п. Фреймворк вводит целый ряд изменений.

В среде Ардуино исходные файлы принято называть Скетчами, и они имеют расширение файла ".ino".

Первое, что бросится в глаза - это совсем другая структура кода, вместо привычного в С++:

#include <iostream>
using namespace std;

int main() {
return 0;
}

Нас встретят две функции:

void setup() { } - Функция, которая выполняется один раз, при включении микроконтроллера (скр.: мк). В ней производятся предварительные настройки или другим словом - инициализация

void loop() { } - В этой функции, точнее ее можно описать как бесконечный цикл (см. ниже), выполняется основной код вашей программы.

На самом деле функция main() никуда не исчезает. Фреймворк скрывает от нас лишнее и предлагает работать в более удобном варианте (по мнению разработчиков).

На самом деле без фреймворка код программы будет выглядеть так:

#include "WProgram.h" // Определения всего функционала Arduino.

void setup(); // Объявление функции setup и loop
void loop();

void setup() {
// Инициализация вашей программы
}

void loop() {
// Основной цикл вашей программы
}

 

int main(void) { // Основной цикл программы
init(); // Скорее всего инициализация фреймворка
setup(); // Инициализация вашей программы
for ( ; ; ) // Бесконечный цикл в котором "крутится" основной код вашей программы

loop();
return 0; // Никогда не выполнится
}
- И тут уже все встает на свои места.

 

Давайте "коротко" рассмотрим синтаксис.

Комментарии
Для начала начнем с простого, с комментариев. Они бывают двух видов - однострочные и многострочные.
Первые объявляются двойным слэш:

// Тут какой то текст

Во втором варианте, текст пишется между /* и */ :

/*
Тут первая строка
Тут вторая
Еще много строк
......
И последняя строка
*/

Также многострочный комментарий можно встроить в любое место в коде. Например:

Serial.begin( /* Скорость порта в бод */ 9600 );
analogWrite( /* Номер вывода */ pin, /* Передаем значение */ value);

Это не вызовет ошибки в Arduino IDE. Но так обычно не делают, однако знать о такой возможности необходимо.

 

Точка с запятой и Блок кода.

; (Точка с запятой) - (токен) указывает на конец инструкции или же терминатор конца строки. В каждой литературе по разному. Может быть необязателен в некоторых случаях, покажу на примере if :

if ( a == b ) Serial.print("A = B");

if ( a == b ) {
Serial.print("A = B");
}

В этот момент стоит пояснить что, программа целиком состоит из набора инструкций. Они выполняют определенные действия, а точка с запятой ( ; ) указывает компилятору на ее завершение.

Я не зря привел в пример if, где мы можем видеть, что (инструкция) Serial.print("A = B"); - заключена в фигурные скобки. Это называется Блок Кода.

Если совсем точно, то блок кода - это набор логически связанных операторов, заключенных в фигурные скобки:

{
....Блок кода....
}

Но давайте вернемся к точке с запятой. Дело в том, что компилятор не распознает конец строки как терминатор. Поэтому неважно - где в строке вы укажете точку с запятой. Проще на примере:

a = 5;
b = 10;
sum(a, b);

Для компилятора тоже самое, что:

a = 5; b = 10; sum(a, b);

 

Идентификатор.

Идентификатор - это имена переменных, функций, классов или любого другого элемента. Он должен начинается с букв от A до Z или от a до z, символа нижнего подчеркивания, за которым следует последовательность букв, символов подчеркивания и цифр от 0 до 9.

Нельзя использовать знаки препинания, такие как @, $ и % и пробел:

int var@num; Не правильно
int var num; Не правильно

C++ язык программирования, с учетом регистра. То есть, Var и var это два разных идентификатора.

Примеры имен:

В среде Arduino IDE применяется язык С++, поверх которого установлен фреймворк Wiring, добавляющий свои библиотеки, функции и объекты такие как - (Для простого примера) Serial, pinMode, analogWrite,-2

 

Ключевые слова.

Это зарезервированные языком программирования слова. Они не могут использоваться как имена идентификаторов.

Для примера это такие слова как:

if
for
new
float
bool
int
sizeof
struct и т.д.

Директивы препроцессора.

Опишу коротко, так как это тема для отдельной статьи.

Директива - это специальные команды препроцессора, которые он выполняет. Директивы начинаются со знака " # ".

Существуют такие директивы как:

Подключение файлов: #include, #include_next.
Условная компиляции: #if, #ifdef, #ifndef, #else, #elif and #endif.
Диагностика: #error, #warning, #line.
Дополнительная информация компилятору: #pragma
Макроопределения: #define



Дата: 2023-07-22   Автор: Администратор   Просмотров: 589





Контакты

Если у Вас есть вопросы, мы с удовольствием на них ответим.

Адрес:

Мурманская область, г.Полярный ул. Красный Горн, д.16, 3-й этаж, 34 каб.

Телефон:

+7 9646829261