Урок 21. BASCOM-AVR и Arduino

Не так давно я заинтересовался популярной платформой для разработки электронных устройств, это – Arduino. Сначала эта платформа  мне очень понравилась ввиду её простоты, универсальности и удобства. Свою написанную программу можно оперативно загрузить в микроконтроллер по COM или USB порту, не прибегая к помощи программатора.  Я собрал себе клон Arduino под названием FreeduinoMax232. И начал изучать для себя невиданную среду программирования Processing, начал писать на ней простенькие программки для мигания светодиодами и прочими вещами. Но моя радость была не долгой. Во-первых, потому что для меня Processing жутко неудобная среда и язык программирования C в ней мне не по душе. Во-вторых, размер программ (скетчей) написанных в Processing жутко большой, например программа, которая просто мигает светодиодом, занимает 890 байт Flash памяти микроконтроллера. Это много, и с этим можно сразу забыть маленькие микроконтроллеры серии Attiny. В итоге, приятные впечатления у меня остались только от самой платы.

Моя самодельная плата Arduino:

Для программирования микроконтроллеров мне очень нравится среда BASCOM-AVR, так как она достаточно быстрая, удобная и имеет массу приятных вещей. И я задумался, а как бы подружить плату Arduino и BASCOM-AVR. Именно про это я и расскажу в этой статье.

Начиная с версии 2.0, в BASCOM-AVR включена поддержка Arduino, для использования его как программатора, который программирует сам себя. Давайте разберемся, как нам программировать Arduino из BASCOM-AVR. Для начала запустим BASCOM-AVR и пройдём в меню настроек по цепочке Options Programmer, вот так:

Далее увидим следующею картину:

Здесь, в выпадающем списке сверху, где “Programmer” нужно выбрать “ARDUINO”. Также в выпадающем списке “COM-port” выберите порт к которому у вас подключена плата Arduino. В поле “BAUD” выберите “19200”. Всё это уже показано на скрине выше. После установки всех этих настроек нажмите кнопку “Ok”. Теперь можно писать программу и прошивать её в плату! Для тестирования, давайте напишем классическую “мигалку” светодиода подключённого к PORTB.5 микроконтроллера (на платах Arduino там уже есть светодиод под названием L).

Исходный код программы:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$regfile = "m8def.dat"
$crystal = 16000000
 
Config Portb.5 = Output
 
Do
 
Portb.5 = 1
Wait 1
Portb.5 = 0
Wait 1
Loop
 
End

После написание программы откомпилируем её, для этого пройдем по цепочке Program – Compile или-же просто нажмём клавишу F7. После компиляции программы можно прошивать её в нашу Arduino, пройдём по цепочке Program – Send to chip – Program.

И увидим окно программы программатора:

Теперь чтобы прошить нашу программу остался один шаг, это пройти по цепочке Chip – Write buffer into chip, или нажать на следующею кнопку:

После этого начнётся прошивка Arduino, при этом светодиоды TX и RX на плате будут быстро мигать. После прошивки, внизу онка, где техническая информация появятся сообщения:

Поздравляю! Мы успешно прошили плату Arduino из BASCOM-AVR, мы их подружили!

Светодиод L на плате должен весело мигать:

Кстати, размер программы “мигалки” написанной в BASCOM-AVR составил всего лишь 192 байта, намного меньше и лучше чем в Processing, правда?

Этот метод прошивки можно использовать на всех платах Arduino и их клонах. Но помните про распиновку выводов, BASCOM-AVR знает только “настоящие” порты и пины микроконтроллеров, не “Ардуиновские”! В файлах к статье вы можете найти исходник и файл прошивки программы "мигалки".

Прикрепленные файлы: