- •Что такое Arduino?
- •Структура:
- •Void setup()
- •Void loop()
- •Управляющие операторы
- •Прочий синттаксис
- •Арифметические операции
- •Операторы сравнения:
- •If / else
- •Логические операции
- •Указатели и ссылки
- •Битовые операции
- •Регистры портов
- •Compound Operators
- •Константы
- •Типы данных
- •Конвертирование типов переменных
- •Область действия переменной и квалификаторы
- •Volatile
- •Утилиты
- •Цифровой ввод вывод
- •Аналоговый ввод вывод
- •Расширенный ввод вывод
- •Математические функции
- •Тригонометрические функции
- •Функции случайных чисел
- •Биты и байты
- •Функции прерываний
- •Interrupts()
- •Коммуникации
- •Int Serial.Available()
- •Int Serial.Read()
- •Библиотеки
- •Eeprom Library
- •Ethernet library
- •Firmata Library
- •LiquidCrystal Library
Прочий синттаксис
;точка с запятой
Используется для обозначения когда выражения
Пример
inta= 13;
Совет:
Опущение точки с запятой приведет к ошибке компилятора. Ошибка может быть явной и вести на требуемую строку, а может и не вести. Если логика вывода ошибок вам не понятна - первым делом ишите упущенный символ ; в строках до той, которую подсвечивает компилятор.
{}Фигурные скобки
Фигурные скобки являются одними из главных в языке C. Они используются для разделения конструкций и часто вводят в смущение начинающих программистов.
Открытая скобка обязательно должна иметь в качетве пары закрыващую скобку.
Поскольку использование фигурных скобок двольно разнообразно, хорошим стилем программирования станет научиться сразу же ставить закрывающую скобку и продолжать писать код между ними.
Фигурные скобки определяют основную логику программы поэтому забыв поставить одну из скобок, найти ошибку будет весьма затруднительно.
Основное использование фигурных скобок:
функции
voidmyfunction(datatypeargument){
statements(s)
}
Циклы
while (boolean expression)
{
statement(s)
}
do
{
statement(s)
} while (boolean expression);
for (initialisation; termination condition; incrementing expr)
{
statement(s)
}
Операторы условия
if (boolean expression)
{
statement(s)
}
else if (boolean expression)
{
statement(s)
}
else
{
statement(s)
}
Комментарии
Комментарии используются для инфомрмирования программиста о смысловой нагрузке участков кода. Они игнорируются компилятором и не занимают места в МК.
Комментарии помогают понять или запомнить логику работы программы. В случае, если ваш код будет разбирать кто-то другой, или же вы сами после долгого от него отлучения - комментарии весьма полезны. Существует два способа определения комментариев в программе:
Пример
x= 5; // Однострочны комментарий. Заканчивается переводом строки
/* Это многострочный комментарий.
if(gwb== 0){ // однострочный комментарий правильно работает внутри многострочного
x= 3; /* но многострочный внутри многострочного - нет */
}
// не забываем закрыть - соблюдаем баланс!
*/
Совет:
При экспериментировании с кодом весьма практично комментировать участки кода, но не удалять их. В этом случае гораздо проще починить код, и отпадает необходимость набирать его заново.W
Define
Дирректива препроцессора #defineэто удобный компонентCпозволяющий программисту использовать макроопределения. Макроопределения не занимают места в памяти программ. При компиляции объявленные макроопределения просто заменяются на строку символов, таким образом имеется возможность указания какого-либо параметра (константы) сразу в нескольких местах кода.
Синтаксис:
#defineconstantNamevalue
Помни, что символ # обязательный
Пример:
#defineledPin3
// Компилятор заменит встречающее в коде ledPinна 3 во время компиляции программы.
Совет:
После директив препроцессора отсутсвует точка запятой. Если вы влепите ее туда то компилятор вылетит с ошибкой. page.
#defineledPin3; // эта запись ошибочна
Также использование знака присваивания ошибочно.
#defineledPin= 3 // тоже ошибка
#include
Директива препроцессора #includeиспользуется ля подключению к проекту внешних библиотек. Это дает программисту все возможности библиотек языкаC/C++, а также специальных, написанных для платформыArduino.
Помни, что #include, как #define, не требуют точки с запятой, и компилятор вылетит с ошибкой если вы влепите ее туда.
Пример:
Этот пример подклчюает библиотеку, позволяющую класть данные в память программ, тем самым экономя оперативную память. Эдакий - свап-раздел на свободном месте флеша МК.
#include<avr/pgmspace.h>
prog_uint16_t myConstants[] PROGMEM = {0, 21140, 702 , 9128, 0, 25764, 8456,
0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};
