Чем программирование Arduino отличается от стандартного C? - PullRequest
25 голосов
/ 09 мая 2011

У меня есть опыт программирования встроенных систем (TI MSP430 , Atmel ATxmega ). Чем программирование Arduino отличается от этих? Какие знания о C я могу получить в программировании Arduino?

Ответы [ 5 ]

34 голосов
/ 09 мая 2011

Хотя я не знаю о ATXMega, 8-битные чипы AVR, такие как ATmega328, используемые в более новых Arduinos, используют компилятор AVR-GCC. Это позволяет компилировать C и даже C ++ в чип AVR. На один уровень выше AVR-GCC находится AVR Libc , библиотека C, которая делает программирование для AVR задачей более высокого уровня (больше не нужно обращаться непосредственно к регистрам и т. Д.).

Arduino IDE использует библиотеку AVR-GCC и AVR libc в серверной части. Кроме того, Arduino IDE делает доступными других библиотек , как хороший последовательный интерфейс.

Наконец, Arduino поставляется с загрузчиком, записанным на чипе AVR. Загрузчик просто позволяет запрограммировать AVR, используя последовательное соединение (от USB) вместо In-Sytem Programmer или Development Board.

Достаточно предыстории, чтобы ответить на ваш вопрос: Arduino можно программировать на C и даже на C ++. Доступные библиотеки написаны на C, и все будет скомпилировано с использованием AVR-GCC. Arduino IDE даже не требуется.

Редактировать

Кажется, интерес к этой теме приличный. Я написал сообщение в блоге, чтобы попытаться дать более подробную информацию о AVR, Arduino и AVR-GCC .

9 голосов
/ 09 мая 2011

При использовании Arduino вы можете использовать свои знания языка Си.

Цель состояла в том, чтобы позволить художникам / непрограммистам легко начать работу с аппаратным программированием и мастерингом, поэтому «язык Arduino» просто оболочка для упрощения разработки.

Вам, программисту на Си, должно быть намного проще использовать Arduino. документация совсем не длинная, wiki хороша и люди на форуме 1010 * полны энтузиазма и полезны.

4 голосов
/ 09 мая 2011

Arduino имеет C-образную форму, и его чрезвычайно легко подобрать.Они абстрагировались от чтения и записи в периферийные регистры для выполнения основных задач.

Один взгляд на пример кода и ссылку на Arduino, и вы сразу же приступите к работе, если вы действительно выполнили настоящий C на любой другой платформе.

4 голосов
/ 09 мая 2011

Вы можете в значительной степени взять все свои знания с C и встроенными системами, и вы будете более чем хорошо. Это не сложно использовать вообще. Добавьте в закладки страницу Arduino Reference , и вы быстро напишете.

4 голосов
/ 09 мая 2011

Arduino - это C, за исключением того, что он вставляется в каждую программу:

void main() {
  setup();
  for(;;) {
    loop();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...