+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.51 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Программируем на С/С++ в Visual Studio под Arduino

09.11.2011 16:34

Этот пост поможет начинающим сэкономить несколько часов(дней) для настройки среды Visual Studio для разработки под Arduino на языке С/C++.

 

Преамбула

 Пару месяцев назад увидел у преподавателя некую платку, подключенную к компьютеру. На платке были видны семисегментные индикаторы и несколько светодиодов. Преподаватель разбирался в каком-то коде, платка тем временем живо сигнализировала ему что-то. Меня сразу заинтересовало, чем это он там занимается… Однако, всё, что я смогу узнать у него - это то, что платку зовут отладочной. Путём недолгого гугления выхожу на игрушку под названием "Arduino". Заказываю себе Arduino mega, та что с Atmega1280 (всего $29.99) и через две недели бегу на почту получать заветную игрушку.

Фабула

 Т.к. я являюсь заядлым Windows-разработчиком, привыкшим к среде VS, то я решил сразу отвлечься от родной среды Arduino IDE.

 Итак, нам понадобится:
Собственно, сама среда;
Visual Assist X - опционально, для облегчения разработки. Заменяет собой встроенный IntelliSense встроенный в VS. Еще куча дополнительных опций. Платное;
WinAVR последней версии. Это компилятор программ на С/С++ для "платформы" AVR;
avr-libc. Минимальная реализация стандартной библиотеки С для AVR. Содержит такие полезные функции, как, например, _delay_ms или _delay_us (задержка в милли- и микросекундах);
Avrdude. Желательно свежей версии, универсальный программатор для AVR;
FTDI Virtual Com Port Drivers. Не вдаваясь в подробности, будем называть это "драйверами для Arduino";
AvrStudio - опционально. Имеет встроенный симулятор микроконтроллера, позволяющий пошагово отлаживать программу;
Arduino schematic. Этот pdf-файл понадобится для того, чтобы узнать к каким портам МК подключены выходы Arduino.

 Всё гуглится на раз.

 Итак, приступим. Устанавливаем WinAVR, avr-libc, скачивам Avrdude. Подключаем Arduino к компьтеру и устанавливаем драйвера. Создаём "makefile project" в Visual Studio. Заполняем поля так, как на рисунке ниже.

В месте, куда установился WinAVR в поддиректории sample находится Makefile, который можно использовать для сборки проекта. Копируем себе, в папку созданного makefile project, и изменяем некоторые строки:

MCU = atmega1280

F_CPU = 16000000

FORMAT = ihex

TARGET = ATMEGA-1280-DEV-BOARD

SRC = $(TARGET).C

Первая строчка обозначает тип микроконтроллера. Для Arduino mega это atmega1280;
Вторая строчка задаёт частоту, на которой будет работать наш МК;
Третья строка - формат выходного файла. Лучше оставить intel hex;
Четвёртая - имя вашего проекта;
Пятая - список исходных файлов проекта.

PROGRAMMER_FLAGS = -p m1280 -c arduino -b 57600 -P COM3 -U flash:w:$(TARGET).hex

 Эта строка будет передаваться в качестве параметров для Avrdude.
Опция -p указывает тип девайса, который будем шить;
-с указывает тип программатора. Arduino использует протокол обмена информацией позаимствованный у программатора STK500, поэтому здесь можно смело вписывать stk500. Однако, в новой версии avrdude добавили в качестве программатора Arduino, поэтому с пущей уверенностью вписываем сюда arduino;
Следующая опция указывает на какой скорости будет происходить передача данных. Здесь всегда нужно ставить 57600;
Опция -P указывает порт, к которому подключен программатор;
Последняя опция указывает какую конкретно операцию следует выполнить. Для нас это загрузка в флеш-память микроконтроллера программы.

 Изменяем секцию all примерно так:
all: build program
 Добавляем к списку задачи "program". Это позволит при удачной компиляции автоматически грузить прошивку в МК.

 В принципе, всё готово. Пробуем написать минимальную программу (моргалку светодиодом L). Смотрим в файлик arduino-mega-schematic.pdf и видим, что 13 порт Arduino есть ни что иное, как PB7. Пишем примерно следующую программу:

#include <avr/io.h>

#include <util/delay.h>

 

int main()

{

  DDRB = 0xFF;

  while(true)

  {

    PORTB /= (1 << 7);

    _delay_ms(500);

    PORTB &= ~(1 << 7);

    _delay_ms(500);

  }

  return 0; 

}

 

* This source code was highlighted with Source Code Highlighter.

 Минимальный интерфейс для работы с портами ввода-вывода:

#include "utils.h"

 

class Port

{

public:

  Port(PORT& p) : _p(p) {};

  Port& operator! ();

  Port& operator+= (uint8 b);

  Port& operator-= (uint8 b);

  Port& operator= (Port& p);

  void SetLow();

  void SetHigh();

  PORT& GetValue();

  bool ClearBit(uint8 b);

  bool SetBit(uint8 b);

  void Pulse(uint8 t);

  void PulseBit(uint8 b, uint8 t);

private:

  PORT& _p;

};

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года