Собираем схему и программируем Arduino. АЦП. Циклы. Оператор IF
Программирование Arduino: Atmel Studio или Arduino IDE ? Вопрос довольно тривиальный, так как новичку и профессионалу всегда очевиден ответ на него. Но объяснение зачастую есть только у профессионалов. Давайте попробуем разобраться, так ли важно программировать в более профессиональных средах, на примере простой задачи. Платформа Arduino и, особенно, среда разработки Arduino IDE предназначены для того, чтобы помочь начинающему электронщику и программисту выполнить некоторые полезные задачи без особых навыков в этой сфере. В таком случае используется язык программирования C++ с примесью C и множества специализированных команд, которые позволяют использовать функции процессора, не зная особенностей процессора. Например, нам нужно сгенерировать ШИМ сигнал на одном из выводов контроллера Arduino. В Arduino IDE это делается при помощи одной функции analogWrite(pin, value), с помощью которой мы задаем номер контакта и частоту сигнала. При написании кода на языке C с использованием Atmel Visual Studio вы получаете огромный набор возможностей для той же самой простой задачи: вам нужно определить тактовую частоту, определить значение тактового прескалера, определить режим работы контакта, определить режим, в который будет установлена секция ШИМ процессора, определить рабочий цикл ШИМ и включить саму генерацию ШИМ. Все это занимает гораздо больше кода, но вы получаете полный контроль над функциями процессора. Arduino IDE значительно упрощает процесс разработки, но и ограничивает вас в возможностях управления. Так что для профессионального разработчика вариант с использованием Atmel Studio будет более предпочтительным. Это позволяет написать более стабильный и надежный программный код. А что думаете вы?
Из Arduino в Atmel Studio и другие IDE
При попытке компиляции проекта написанного в Arduino IDE, можно не мало удивиться количеству ошибок и предупреждений которые выдаст компилятор при попытки сборки проекта. Хотя в Ардуино все компилировалось и работало без проблем. Ошибки не слишком серьезные, и я бы не стал их считать минусом Arduino IDE. Список будет пополнятся по мере их обнаружения. сomparison between signed and unsigned integer Сравнение знаковой и без знаковой переменной. Например будут равны при сравнении int -1 и unsigned int 65535, -2 и 65534, и так далее...