Posts tagged ‘AVR’

AVR megaEclipse. Делаем среду all-in-one.

Мне всегда было интересно и даже немного завидно, почему системные программисты и те, кто разрабатывает настольные приложения обладают удобными средами, встроенным отладчиком, могут анализировать написанный код на предмет утечек памяти, производительности кода и так далее и почему этого всего почти нет для 8 и 16-битных микроконтроллеров? А ведь эти рабочие лошадки для большинства проектов выгодны по цене и целесообразны по производительности и функционалу. Проект среды разработки Eclipse призван стереть границы применимости среды и позиционирует некий универсал, не хватающие возможности которого можно дополнить плагинами и запуском внешних приложений. О том, как сделать эту среду отладчиком, средством прошивки микроконтроллеров, симулятором контроллера и средством контроля версий мы и расскажем в этой статье. Все это будет сделано по отношению к МК AVR, как самому любимому и популярному МК в рунете в связке с компилятором GCC. Читать полностью »

7 Comments

TheremenVision. Первые шаги - первый результат.

Автор: Чебаков Денис Игоревич, лицей № 1571, 11 класс, РК-10 абитуриент.
В прошлой статье
Мы рассказали об очень интересном датчике, принцип работы которого унаследован у всемирно известного прибора - терменвокса. Было решено предоставить возможность любому желающему прототипировать эту штуку и проверить принцип действия. Спустя некоторое время, при небольшом моем участии как консультанта будущий бауманец, а ныне абитуриент, Денис Чебаков, выполнил прототип устройства. Теперь мы можем наглядно посмотреть рабочий вариант конструкции прибора. Существует несколько систем оценки дистанции: различные дальномеры, ультразвуковые датчики, системы машинного зрения. Их недостатками являются высокие требования к вычислительной мощности управляющего устройства (СТЗ), трудность монтирования на роботе заданной конструкции, сложность эксплуатации, необходимость использования на объекте отражателей, дороговизна и т.п. В случае, когда требуется простое, легкое и дешевое устройство, можно использовать систему определения дистанции, основанную на методе пассивной радиочастотной идентификации. Система содержит один опорный генератор электрических колебаний и несколько сенсоров. Сенсор состоит из антенны и генератора. Можно использовать штыревую антенну или лист фольгированного текстолита в качестве антенны. У опорного генератора частота жестко зафиксирована. У сенсорного генератора частота может изменяться, т.к. одна из пластин времязадающего конденсатора подключена к антенне. Емкость изменяется за счет приближения объекта (антенна и объект образуют воздушный конденсатор). Сигналы с опорного и сенсорного генераторов подаются в детектор, который выделяет разностную частоту. По степени изменения разностной частоты можно судить о наличии постороннего предмета вблизи антенны. Читать полностью »

Comment

Сбор данных с инкрементальных энкодеров с помощью МК AVR

Часто возникает необходимость сбора данных с инкрементальных энкодеров. Энкодер можно рассматривать как датчик, который позволяет измерить пройденный путь, скорость, ускорение. Последнее и предпоследнее более предпочтительно, так как позволяет получить вам векторную величину, имея вектор скорости двух точек робота в каждый момент времени можно построить траекторию робота с очень хорошей точностью. Мы называем этот уровень "Внешняя одометрия". Он представляет из себя 2 энкодера, платы измерения скорости и двухпоточное приложение, выполняющее роль интегратора, на выходе которого мы получаем плоские координаты.

На просторах рунета я не раз сталкивался с проблемами пользователей при создании дешевой системы, определяющей скорость и направление вращения. О том, что необходимо для этого сделать - в этой статье. Читать полностью »

Comment

Кросс компиляция под микроконтроллеры AVR при помощи CMake

CMake очень мощная система сборки. Она давно известна разработчикам настольных приложений. Её используют такие проекты как OpenCV, KDE. В этой статье рассмотрим, как при помощи CMake собирать проекты под микроконтроллеры AVR. Я пробовал собирать проекты для AVR из под AVRStudio и Eclipse. AVRStudio мне не понравилась как среда разработки. А у Eclipse мне не понравился файл проекта. Я в нём так и не смог сделать некоторые вещи, которые в CMake делаются одной строчкой.
Читать полностью »

Comment

FreeRTOS — операционная система для микроконтроллеров. Часть 10. Отладка приложения.


Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Эта статья продолжает знакомить читателя с созданием программ, ра¬ботающих под управлением FreeRTOS — операционной системы для микроконтроллеров. на этот раз внимание будет уделено этапу отладки приложения: мы рассмотрим возможности FreeRTOS, которые помогают найти трудно выявляемые ошибки в программе, определить узкие места программы и оценить пути ее дальнейшего расширения.

Возможности трассировки

Трассировка позволяет исследовать дея­тельность ядра FreeRTOS и проследить по­следовательность и время, когда задачи сме­няют друг друга, а также отследить другие события ядра.

Последняя версия FreeRTOS (на момент написания статьи — V7.0.1) поддерживает два способа трассировки выполняющейся программы:

  1. Механизм трассировки с записью в буфер (Legacy Trace Utility).
  2. С использованием макросов трассировки (Trace Hook Macros).

Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 9. Программная реализация таймеров.



Андрей Курниц
kurnits@stim.by

Это очередная статья из цикла, посвященного FreeRTOS — операционной системе для микроконтроллеров. Здесь читатель познакомится с нововведением последних версий FreeRTOS — встроенной реализацией про­граммных таймеров

Что представляет собой программный таймер?

В версии FreeRTOS V7.0.0 по сравне­нию с предыдущими версиями появилось существенное нововведение — встроен­ная реализация программных таймеров. Программный таймер (далее по тексту — таймер) во FreeRTOS — это инструмент, позволяющий организовать выполнение подпрограммы в точно заданные моменты времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 8. Сопрограммы

Введение

Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Автор этой статьи продолжает знакомить читателя с созданием программ, работающих под управлением FreeRTOS — операционной системы для микроконтроллеров. На этот раз речь пойдет об альтернативном способе реализации многозадачной среды, когда в программе вместо задач ис­пользуются сопрограммы. Мы оценим достоинства и недостатки использования сопрограмм.

Что представляет собой сопрограмма?

В предыдущих публикациях  мы говори­ли о FreeRTOS как о многозадачной операци­онной системе, и в центре нашего внимания находилась задача (task) — базовая единица программы, работающей под управлением FreeRTOS. Речь шла о том, что программа, работающая под управлением FreeRTOS, разбивается на совокупность задач. Задача представляет собой отдельный поток команд процессора и реализуется в виде функции языка Си. Каждая задача отвечает за неболь­шую часть функциональности всей програм­мы. Каждая задача выполняется независимо от остальных, но взаимодействует с осталь­ными задачами через механизмы межзадач­ного взаимодействия.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 7. Совместный доступ к одному ресурсу.

Введение
Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Статья поможет читателям ответить на следующие вопросы:

1) Что означает термин «ресурс»?
2) Когда и почему необходимо управление доступом к ресурсам?
3) Что  такое механизм взаимного исключения и способы его реали­зации?
4) Что такое критическая секция и способы ее реализации во FreeRTOS?
5) Как применять мьютексы для реализации механизма взаимного исключения?
6) Что такое инверсия приоритетов и как наследование приоритетов позволяет уменьшить (но не устранить) ее воздействие?
7) Другие потенциальные проблемы, возникающие при использова­нии мьютексов.
8 ) Задачи-сторожа— создание и использование.
9) Функция, вызываемая каждый системный квант времени.
Читать полностью »

Comment

FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 6. Создание программ под управлением RTOS


Автор: Андрей Курниц (kurnits@stim.by). Журнал КиТ
Шестая часть статьи посвящена взаимо­действию прерываний с остальной частью программы и поможет читателям ответить на следующие вопросы:

1) Какие API-функции и макросы можно ис­пользовать внутри обработчиков преры­ваний?

2)  Как реализовать отложенную обработку прерываний?

3)  Как   создавать и использовать двоичные и счетные семафоры?

4)  Как использовать очереди для передачи информации в обработчик прерывания и из него?

5)  Каковы особенности обработки вложен­ных прерываний во FreeRTOS?
Читать полностью »

Comment