Хотя я не знаю о 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 .