А теперь — программа
В листинге 5.3 приведена программа с комментариями, которую я написал в соответствии с алгоритмом. В листинге 5.4 приведен тот же код, но уже без комментариев, чтобы вы смогли быстрее набрать его. Пожалуйста, введите его в окне редактирования среды IDE.


При наборе текста программы вы заметите, что второй оператор
Некоторые сообщения об ошибках трудно понять, и они ссылаются на номера строк. Но эти номера не отображаются на экране! Это похоже на злую шутку: сказать, в какой строке ошибка, но не показывать ее номер. Может быть, существует способ включить отображение нумерации строк? Если вы заглянете в раздел Помощь (Help) и поищете фразу «нумерация строк», то вряд ли найдете что-либо. Посетите форумы Arduino, и вы обнаружите многочисленные жалобы на отсутствие возможности отобразить нумерацию строк.
Да, но на форумах вначале видны старые сообщения. Если вы прокрутите страницу вниз, к новым сообщениям, то вы обнаружите, что проблема наконец-то решена. Просто компания Arduino пока еще не отразила это в документации. Перейдите в раздел Файл | Настройки (File | Preferences), и вы увидите флажок включения нумерации строк.
Конечно, сообщение об ошибке бывает трудно понять, но вот перечень самых распространенных ошибок:
• Отсутствует точка с запятой в конце инструкции.
• Нет закрывающей скобки. Помните о том, что фигурные скобки { и } должны всегда быть в паре.
• Неправильный регистр символов. Хотя командное слово часто содержит прописные буквы наряду со строчными, как В pinMode, вы могли набрать все строчными буквами. Среда IDE должна отображать командные слова красным, если они написаны правильно. Если вы видите, что оно черное, значит в нем опечатка.
• Отсутствие круглых скобок после названия функции, например,
• Одиночный знак = там, где должен быть двойной == Помните о том, что = означает «присвоить значение», в то время как == означает «сравнить значения».
• Один символ | или & там, где они должны быть в паре.
После того как операция проверки и компилирования не обнаружит дополнительных ошибок, загрузите программу. Теперь подключите заземляющий провод, соединяющий макетную плату с платой Arduino Uno, светодиоды должны начать мигать. Подождите несколько секунд, а затем нажмите кнопку — отображение остановится, показав случайную конфигурацию точек. Нажмите кнопку снова, и быстрое отображение возобновится. Удерживайте кнопку, и после двухсекундного периода игнорирования дисплей остановится снова. Алгоритм успешно реализован!
Теперь рассмотрим, как работает эта программа.
Короткие и длинные целые числа
В программе из листинга 5.3 есть несколько ключевых слов, которые вы не встречали ранее, и одно очень важное новое понятие.
Одно из новых слов —
Почему бы не применять длинные целые числа всюду? Тогда нам не нужно было бы беспокоиться об ограничениях обычного числа. Это так, но длинные числа обрабатываются в два (а то и более) раза дольше и занимают в два раза больше памяти. А у микроконтроллера Atmel объем памяти