|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Базовый курс программирования Ардуино на языке C++. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Установка и настройка Arduino IDE на компьютер.Оглавление >>>
Структура программы Ардуино.Структура программы Ардуино достаточно проста и состоит из 3-х частей: область описания глобальных переменных, модулей setup() и loop(). В минимальном варианте состоит из двух частей - модулей setup() и loop().
Функция setup() выполняется один раз, при включении питания или сбросе контроллера. Обычно в ней происходят начальные установки переменных, регистров. Функция должна присутствовать в программе, даже если в ней ничего нет. После завершения setup() управление переходит к функции loop(). Она в бесконечном цикле выполняет команды, записанные в ее теле (между фигурными скобками). Собственно эти команды и совершают все алгоритмические действия контроллера. Оглавление >>>
Первоначальные правила синтаксиса языка C.Учебную программу скачать. ; точка с запятой Выражения могут содержать сколь угодно много пробелов, переносов строк. Признаком завершения выражения является символ ”точка с запятой ”. z = x + y; // Вычисление результата. Как увеличить количество пробелов Serial.print(z); // Вывод на экран результата
{ } фигурные скобки определяют блок функции или выражений. Например, в функциях setup() и loop(). /* … */ блок комментария, обязательно закрыть. /* это блок комментария */ // однострочный комментарий, закрывать не надо, действует до конца строки. // это одна строка комментария Оглавление >>>
Переменные и типы данных.Учебную программу скачать. Переменная это ячейка оперативной памяти, в которой хранится информация. Программа использует переменные для хранения промежуточных данных вычислений. Для вычислений могут быть использованы данные разных форматов, разной разрядности, поэтому у переменных в языке C есть следующие типы.
Типы данных выбираются исходя из требуемой точности вычислений, форматов данных и т.п. Не стоит, например, для счетчика, считающего до 100, выбирать тип long. Работать будет, но операция займет больше памяти данных и программ, потребует больше времени.
Объявление переменных. Указывается тип данных, а затем имя переменной. int x; // объявление переменной с именем x типа int Все переменные должны быть объявлены до того как будут использоваться. Переменная может быть объявлена в любой части программы, но от этого зависит, какие блоки программы могут ее использовать. Т.е. у переменных есть области видимости.
int mode; // переменная mode доступна всем функциям. void setup() { // Начало блока setup() // пустой блок, начальные установки не требуются } // Конец блока setup() void loop() { long count; // переменная count доступна только в функции loop() for ( int i=0; i < 10; i++;) // переменная i доступна только внутри цикла При объявлении переменной можно задать ее начальное значение (проинициализировать). int x = 0; // объявляется переменная x с начальным значением 0 При арифметических операциях с разными типами данных происходит автоматическое преобразование типов данных. Но лучше всегда использовать явное преобразование. int x; // переменная int z = x + (int) y; // переменная y явно преобразована в int Оглавление >>>
Системы счисления (двоичная, восьмеричная, десятичная, шестнадцатиричная).Учебную программу скачать. Примеры позиционных систем счисления (вес цифры зависит от её положения в числе).
Оглавление >>>
Арифметические операции.Учебную программу скачать.
Оглавление >>>
Операции отношения.Учебную программу скачать.
Оглавление >>>
Логические операции.Учебную программу скачать.
Оглавление >>>
Операции над указателями.Учебную программу скачать.
Оглавление >>>
Битовые операции.
Оглавление >>>
Операции смешанного присваивания.Учебную программу скачать.
Оглавление >>>
Выбор вариантов, управление программой.Учебную программу скачать. Выбор вариантов, управление программой. Оглавление >>>
Оператор условного перехода IF ...Учебную программу скачать. Оператор IF проверяет условие в скобках и выполняет последующее выражение или блок в фигурных скобках, если условие истинно. if (x == 5) // если x=5, то выполняется z=0 if (x > 5) // если x > 5, то выполняется блок z=0, y=8; Оглавление >>>
Оператор условного перехода IF ... ELSE ....Учебную программу скачать. IF … ELSE позволяет сделать выбор между двух вариантов. if (x > 5) // если x > 5, то выполняется блок z=0, y=8; Оглавление >>>
Оператор условного перехода IF ... ELSEIF ... .Учебную программу скачать. ELSE IF – позволяет сделать множественный выбор if (x > 5) // если x > 5, то выполняется блок z=0, y=8; else if (x > 20) // если x > 20, выполняется этот блок else // в противном случае выполняется этот блок Оглавление >>>
Оператор условного перехода SWITCH CASE ... .Учебную программу скачать. SWITCH CASE - множественный выбор. Позволяет сравнить переменную (в примере это x) с несколькими константами (в примере 5 и 10) и выполнить блок, в котором переменная равна константе. switch (x) { case 5 : case 10 : default : Оглавление >>>
Массивы.Учебную программу скачать. Массив это область памяти, где последовательно хранятся несколько переменных. Объявляется массив так. int ages[10]; // массив из 10 переменных типа int float weight[100]; // массив из 100 переменных типа float При объявлении массивы можно инициализировать: int ages[10] = { 23, 54, 34, 24, 45, 56, 23, 23, 27, 28}; Обращаются к переменным массивов так: x = ages[5]; // x присваивается значение из 5 элемента массива. Нумерация элементов массивов всегда с нуля. Оглавление >>>
Оператор цикла FOR ... .Учебную программу скачать. Цикл FOR. Конструкция позволяет организовывать циклы с заданным количеством итераций. Синтаксис выглядит так: for ( действие до начала цикла; условие продолжения цикла; действие в конце каждой итерации ) { // код тела цикла } Пример цикла из 100 итераций. for ( i=0; i < 100; i++ ) // начальное значение 0, конечное 99, шаг 1 { Оглавление >>>
Оператор цикла WHILE ... .Учебную программу скачать. Цикл WHILE. Оператор позволяет организовывать циклы с конструкцией: while ( выражение ) Цикл выполняется до тех пор, пока выражение в скобках истинно. Пример цикла на 10 итераций. x = 0; DO WHILE – цикл с условием на выходе. do Цикл выполняется пока выражение истинно. Оглавление >>>
Оператор выхода из цикла BREAK ... .Учебную программу скачать. BREAK – оператор выхода из цикла. Используется для того, чтобы прервать выполнение циклов for, while, do while. x = 0; Оглавление >>>
Оператор пропуска операторов до конца тела цикла CONTINUE... .Учебную программу скачать. CONTINUE - пропуск операторов до конца тела цикла. x = 0; Оглавление >>>
Оператор безусловного перехода GOTO ... .Учебную программу скачать. GOTO – оператор безусловного перехода. goto metka1; // переход на metka1 Оглавление >>>
Функции.Учебную программу скачать. Функции позволяют выполнять одни и те же действия с разными данными. У функции есть:
Описывается пользовательская функция вне функций setup() и loop(). void setup() { void loop() { // объявление пользовательской функции с именем functionName Пример функции, вычисляющей сумму квадратов двух аргументов. int sumQwadr (int x, int y) Вызов функции происходит так: d= 2; b= 3; Функции бывают встроенные, пользовательские, подключаемые. Очень коротко, но этих данных должно хватить для того, чтобы начать писать программы на C для систем Ардуино. Последнее, что я хочу рассказать в этом уроке, как принято оформлять программы на C. Думаю, если вы читаете этот урок в первый раз, стоит пропустить этот раздел и вернутся к нему позже, когда будет что оформлять. Оглавление >>>
Рекомендации по оформлению программ на языке C.Учебную программу скачать. Главная цель внешнего оформления программ это улучшить читаемость программ, уменьшить число формальных ошибок. Поэтому для достижения этой цели можно смело нарушать все рекомендации. Имена в языке C. Имена, представляющие типы данных, должны быть написаны в смешанном регистре. Первая буква имени должна быть заглавная (верхний регистр). Signal, TimeCount Переменные должны быть записаны именами в смешанном регистре, первая буква строчная (нижний регистр). signal, timeCount Константы должны быть записаны в верхнем регистре. В качестве разделителя нижнее подчеркивание. MAX_TEMP, RED Методы и функции должны быть названы глаголами, записанными в смешанном регистре, первая буква в нижнем регистре. getTime, setTime Оглавление >>>
Дополнительные материалы. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
© 2000-2024 - 15/3/24 20:04 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|