Метка «программирование микроконтроллеров»

Особенности программирования микроконтроллеров посредством клавиатуры - 1

Основное назначение клавиатуры — набор текста. Но её можно применить и для записи кода в микроконтроллер. Метод нетрадиционный, но может пригодиться, когда под рукой ничего другого нет. Или как развлечение с уже не годной для обычной работы клавиатурой. Ниже о том как это делать.
Читать полностью »

Привет всем пользователям Geektimes! Как-то раз по долгу службы мне потребовалось реализовать программный UART на популярном микроконтроллере ATtiny13. Загуглив, я нашел большое количество статей на эту тему, многие из них выложены здесь:

А есть и на других ресурсах:

Последняя реализация, в общем-то, удовлетворяет моим потребностям (полнодуплексная связь). Но, во-первых, код написан в CodeVision AVR, который я не использую по сугубо религиозным соображениям, во-вторых, слабо комментированные вставки на ассемблере тем более отбивают желание разбираться в коде. Я же поставил себе целью написать на чистом C понятную пользователям библиотеку полнодуплексного UART-а. А заодно написать про это статью, потому что задачка достаточно интересная ввиду очень ограниченного объема памяти и ресурсов контроллера (всего один 8-битный таймер). Для новичков в программировании микроконтроллеров это будет неплохой учебный материал, т.к. я сам в процессе написания библиотеки, практически с нуля освоил архитектуру AVR.

Кому интересно — добро пожаловать под кат, текста будет много, много исходников с комментариями в коде.
Читать полностью »

Программирование на микроконтроллере многим отличается от программирования на ПС.
Первый пункт отличия — это ограничение ресурсов. Таких, как оперативная память, частота процессора (ядра микроконтроллера), количества периферии, количества сред и языков программирования и наличие и стабильность компиляторов. Если с первыми пунктами последнее время становится легче, то в стабильности и правильности работ компилятора всегда есть вопросы (или недопонимание со стороны программиста).

Таким образом, имея опыт работ по 2 микроконтролерам, делаю следующие выводы:

1. Программировать под микроконтроллер лучше на си и ассемблере;
2. При программировании желательно не пользоваться глобальными переменными;
3. Не пользоваться стандартными библиотеками си;
4. Если есть возможность писать все самому.

Если с первыми пунктами все более менее понятно, то с последним все правильно, не считая, что все самому написать жизни не хватит. Поэтому пользоваться чужим кодом придется, а значит, как минимум и пункт третий тоже придется писать самому.

При работе с модемом необходимым условием выходят на первый план функции работы со строками, такие как сравнение, определение длины строки, перевода из числового в текстовый и обратно.

Можно переворачивать интернет или поискать на хабре, тем более что сейчас вышла эта статья и вопросы по работе со строковыми переменными в некоторой части решены. Представляю помощь начинающим, а также на обсуждение гуру небольшой сборник функций для работы со строковыми переменными для эмбдеббера.
Читать полностью »

Тема данного поста образовалась почти случайно, в процессе легкой дискуссии по поводу подходов к разработке програмного обеспечения в частности и устройств на МК в общем. Желающие могут ознакомится с самой дискуссией habrahabr.ru/company/coolrf/blog/222801/. Хотя обе стороны явно остались при своем мнении, тем не менее определенный вызов был брошен. Я вызовов не боюсь, любой челлендж уже сам по себе хорош, поскольку отвечая на него, ты в чем то меняешься и, как правило, в лучшую сторону (вариант типа а слабо выпить 10 литров пива за раз, который очевидно меняет человека НЕ в лучшую сторону, в моем возрасте уже не прокатывает). Итак, мы начинаем.
Читать полностью »

В предыдущих постах мы спроектировали, сделали и всесторонне протестировали блок двухканального радиоуправляемого выключателя.

Радиоуправляемый выключатель своими руками. Часть 3 — Софт выключателя

Но до сих пор это была «бездушная железка», которая несмотря на всю свою потенциальную мощь, заложенную в МК, — ничего не умеет.
Читать полностью »

Внешний вид синтезатора
Несколько лет тому назад умер смертью храбрых мой старый синтезатор Yamaha PSR-GX76. Случилось это что я по ошибке подключил к нему блок питания 24 В вместо положенных 12 В. В таком режиме синтезатор героически проработал несколько минут, после чего случился «пук», сопровождаемый аудиовизуальными спецэффектами и специфическим запахом и синтезатор больше не включался. С тех пор он пылился в коробке и ждал своего часа, который для него, наконец, настал. В нескольких статьях я расскажу как проходило движение от идеи вдохнуть в него новую жизнь до реализации и демонстрации полученных результатов.
Читать полностью »

Этот пост — продолжение серии рассказов о том, как можно сделать своими руками выключатель полезной нагрузки.

Радиоуправляемый выключатель своими руками. Часть 2 — Тестирование и подготовка

В первой части была описана «железячная» составляющая: особенности ее проектирования и производства.

Сегодняшний пост описывает шаги по подготовке среды разработки Arduino и полное тестирование изготовленного модуля.
Читать полностью »

Здравствуйте.

Недавно мне прислали ссылку на статью, где был показан пример реализации простой и в то же время культовой игры «Змейка» в контроллере семейства Siemens s7-300. И я подумал: все знают о таких монстрах, как Siemens, ABB и т.д. Но современные отечественные разработки остаются в тени.

В этой статье я покажу, как за полчаса реализовать алгоритм игры «Змейка» на российской АСУ ТП «КВИНТ 7», разработанной в НИИТеплоприборе. И для большего интереса игра будет целиком реализована на языке технологического программирования FBD, которому уделяется незаслуженно мало внимания.

Итак, начнем:
Читать полностью »

По работе столкнулся с программированием контроллера AT91SA7A3, для этого используется IAR. Но поскольку держать вторую систему мне лень, была принята попытка обеспечить возможность программирования, отладки и прошивки под любимой Ubuntu. И вот, после двух недель общения со стенкой посредством обсценной лексики(аж обои начинали шевелиться), таки удалось всё это хозяйство настроить. А поскольку, возможно, я не один такой буду, напишу как это делается.
Читать полностью »

Условия задачи с одной стороны сложны, с другой стороны очень просто формулируются. Есть сервер очень-очень далеко, к нему через FTDI конвертер подключена Arduino. Доступ у серверу – SSH. А надо исправлять, компилировать и заливать прошивки в плату. Классический пример — оклейка обоями запертой комнаты через замочную скважину. Очевидно ни о какой Arduino IDE, Eclipse и прочих красивых средах программирования речи быть не может.

С другой стороны — что нам стоит дом построить, нарисуем, будем жить.
Читать полностью »