September 4th, 2015

техника

Про программирование микроконтроллеров

Очень я полюбил программируемые микроконтроллеры. С ними можно сделать столько всякого классного. То, для чего раньше надо было собирать достаточно сложную схему, теперь делается в два тычка на восьминогой микрухе.

Возможно, теоретически (теоретически) это не так надёжно, как та самая схема в рассыпухе, ибо больше есть, чему глючить, на практике я с этим не сталкивался. Если надо сделать надёжно, то можно максимально изолировать микроконтроллер от внешнего воздействия, например, оптопарами, шунтирующими конденсаторами, и экранированием. Кроме того, в моей любимой ATTiny есть сторожевой таймер, и если его запрограммировать, при зависании он перезагрузит контроллер.

Главная проблема с микроконтроллерами, если ими заниматься любительски, не постоянно -- в том, что нативный язык программирования у них либо ассемблер, либо достаточно низкоуровневый Си. И это сильно ездит (мне) по мозгам. Чтобы, например, подать единицу на одну ногу, надо писать в регистр, ответственный за эту ногу. От такого программирования я хочу находиться как можно дальше.

Но есть такая штука как Ардуино Си -- где группа граждан нарисовала туеву хучу макросов, и сделала таким образом вполне удобноваримые микроконтроллерные плюсы. Ну да, в теории там оно занимает больше места, но за пределы доступных восьми килобайт флеша как в ATTiny85, я пока не выходил даже с довольно сложными проектами. Мне скорее ног у микросхемы перестанет хватать, чем восьми килобайт. И если это произойдёт -- велика проблема, взял микроконтроллер побогаче, и всё. Например, ATMega328P. Там 32 килобайта под хранение программы есть. И стоит он копейки.

Основная проблема с Ардуино -- из коробки оно не умеет работать с серией микроконтроллеров ATTiny. Только с платами разработки типа Ардуино Уно и т.д. Но это не беда, втыкается штепсель, и гуляй-не-хочу. Вот тут написано, как: http://highlowtech.org/?p=1695

Вторая проблема с использованием Ардуино для программирования микроконтроллеров -- нужен отдельный программатор. На плате разработки он встроен, а тут надо покупать. Рекомендую купить официальный USBASP Томаса Фишла: http://www.ebay.de/itm/-/321829837505 . Он работает с официальной ATMEL Studio, если потом захочется попрограммировать на "настоящем" AVR C.

Я купил неофициальный, а потом занимался майнкампфом с допаиванием недостающих перемычек и обновлением прошивки. Разница в цене в пять долларов не стоит отчаянных матюгов и ручной доработки.

Третья проблема с Ардуино для микроконтроллеров -- ЧУДОВИЩНАЯ среда разработки. Как на этом чуде вообще можно что-то более-менее серьёзное сваять -- я вообще не понимаю. Но эта проблема решается проще всего. Берётся Микрософтовская Вижуал Студио (2013 или 2015, я использую рабоче-крестьянскую коммунальную версию), и на неё накатывается штепсель VisualMicro: http://www.visualmicro.com

Затем надо накатить штепсель на этот штепсель (отсюда же, что и штепсель для среды разработки Ардуино: http://highlowtech.org/?p=1695), чтобы оно сумело работать с контроллерами ATTiny и радоваться жизни в человеческой среде разработки с нормальным редактором кода с автотабуляцией, закрытием скобочек, и прочим бильярдом с профурсетками. Кто хоть раз серьёзно программировал, понимает.

И получается нормальное программирование микроконтроллеров в нормальной среде разработки, на нормальном языке программирования без всяческих заклинаний типа RJMP, BREQ, и прочих.

Рекомендую.
музыка

Гитара Гиттлер

Не путать с Гитлером, который Алоизыч. Гиттлер -- это компания, выпускающая уникальные по своей конструкции гитары.

Какой интересный музыкальный инструмент, однако.



Звучит неплохо!