Использование различных GCC тулчейнов для AVR

AVR
Написал давно, но что-то как-то не мог собраться и дописать. На фоне этого сообщения решил запостить, в общем выкладываю как есть.
Самый популярный gcc тулчейн для AVR микроконтроллеров является WinAVR. Но отнюдь не единственный в своем роде.


Итак:


Читать дальше

Notepad++ и avr gcc

    Из толп просто редакторов кода, не IDE, лучшим, на мой взгляд, является Notepad++.
image
Он простой, имеет качественную подсветку синтаксиса с подключением стилей, а также русскую локализацию и много различных плагинов.

Для использования с AVR gcc тулчейном его надо немного допилить.



Читать дальше

Ассемблерные вставки в AVR-GCC

AVR
Практически всегда, когда в проекте задействованы АЦП, встаёт необходимость провести математическую обработку того, что там нацифровалось. Мат. обработка, в зависимости от задачи, может варьироваться от примитивного «сложить два измерения и поделить пополам (ака сдвинуть на разряд вправо)» до всяких там БПФ, цифровых фильтров и далее по списку. Если математика чуть сложнее, чем «найти максимум за период», а измерения непрерывные, то частенько встаёт вопрос в скорости обработки. Собственно говоря, это вообще-то отправная точка для выбора платформы, на которую будет опираться проект, тут надо здраво оценить потребности задачи и возможности различных платформ. Конечно, для ядрёной числодробилки лучше взять какой-нибудь DSP, а может даже и FPGA. А если наша числодробилка не особо ядрёная, зато требуется минимизировать энергопотребление этой фигни, да и конечная стоимость должна быть не как у самолёта? А ещё есть такие факторы, как опыт разработчика, доступность комплектухи и т.д. Короче если мы решили, что мозгами в нашем проекте должна работать старая добрая AVR, но мозга у неё не хватает, на то что бы осмыслить наш алгоритм, объяснённый ей на языке C, придётся объяснять на Assembler`е.


Читать дальше

AVR, С++ и умные указатели

AVR, С++ и умные указатели

Как известно МК AVR построены по Гарвардской архитектуре, что значит МК имеет различные шины для памяти программ — flash, eeprom и ОЗУ. Многие МК имеют различные шины для разных типов памяти, это даёт возможность, например, одновременной выборки команд и доступа в ОЗУ. Однако в большинстве современных МК при этом все различные виды памяти отображаются в единое адресное пространство. В AVR же и шины разные и отображаются они в разные адресные пространства. Это создаёт определённые неудобства при программировании на Си/Си++ поскольку эти языки подразумевают единое адресное пространство и работа, например, с константами хранящимися в памяти программ осуществляется не очень прозрачно.


Читать дальше

mikroPascal for AVR. Особенности языка.

AVR

Предисловие

Поработав с mP поплотнее, я понял, что эта статья излишне длинная. На самом деле, о нем достаточно знать это.

Введение

При освоении нового компилятора уже знакомого языка, особенно под новую систему, возникает вопрос — а чем оно отличается от уже знакомого? Этот вопрос, применительно к компилятору mikroPascal for AVR (mP) фирмы mikroElektronika я и попробую осветить.


Читать дальше
  • +3
  • 09 марта 2011, 03:25
  • Vga

Контроллер линейки пироприемников на AVR

AVR
Линейки пироприемников
В последние пару недель игрались на работе с интересным прибором — линейкой пироприемников HPL256-I-100. Девайс довольно занятный, но простой. Суть в чем: имеется массив пироэлектрических элементов. Каждый элемент чувствителен к изменению собственной температуры. Причем на его обкладках возникает заряд, пропорциональный изменению температуры. Производители пошли дальше, поместив в корпус: преобразователь заряд-напряжение, интегратор, конденсаторы sample&hold, мультиплексор. Внутреннее устройство линейки пироприемников



Читать дальше

Собственный Laser Tag

Когда то, вспоминая небезызвестный сериал «How i met your mother«, пришла идея создания игры Laser Tag, которая эпизодически появлялась в этом фильме. У меня сразу возникла пара интересных идей. Есть ли эти фишки в существующих проектах или нет – я особо не интересовался, так как меня захватила в основном техническая часть реализации этого проекта. Итак, основная идея игры заключается в следующем. Две команды по несколько человек имеют игрушечные пистолеты, автоматы с прикрепленным к ним обычными лазерными (или IR) указками. Так же на игроках присутствуют мишени (пока ориентируемся только на нагрудный фоточувствительный элемент), которые фиксируют попадание лазерного (IR) луча. Естественно нам необходима площадка для игры – в данном случае упрощаем – играем на улице, в парке, на пляже — в принципе везде, где можно найти какие- нибудь препятствия, строения или иные элементы, что скрыться от противника.

Читать дальше