Преобразуем в строку. Часть 1. Целые числа.

Задача преобразования числа в строку стоит всегда, когда нужно отобразить числовые результаты работы программы. Процессоры у нас оперируют двоичными данными, человеку-же подавай десятичные числа. Собственно задача состоит в преобразовании базы числа. Какие для этого есть способы? Целью данной статьи является описание и сравнение максимального количества способов преобразования числа в строку. Задачу, естественно, рассматриваем с точки зрения реализации на микроконтроллерах, по этому размер и скорость имеют значение. Для простоты рассматриваем только без-знаковые 32-х и 16-ти разрядные числа (со знаком не намного сложнее).


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

STM32 + монохромный LCD. Хозяйке на заметку.

Делаю пару устройств на базе STM32 и монохромного дисплея от Нокии. Ну, рассказывать про работу с экранами от нокиевских мобил я не буду, всё уже много раз обжёвано. Но, хочу поделиться парой идей по работе с ними на stm32 (хотя для других cortex-m3 думаю тоже подойдёт). Авось кому пригодится.


Читать дальше
  • +10
  • 24 августа 2012, 01:16
  • ACE
  • 2

Честно простой цифровой фильтр

Вы работаете с АЦП. Получаете результаты преобразования, один за одним. И замечаете, что эти результаты «скачут». А хотелось бы, чтобы стояли, как… Ну, короче, чтобы стояли!
Есть много причин, почему отсчеты АЦП могут быть нестабильны. В своей заметке я не говорю об этих причинах. Я говорю о том, как успокоить показания, получая их AS IS. И как сделать это максимально просто. При этом, возможно, не имея ни малейшего понятия о науке под названием «цифровая  обработка сигналов».

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

Простой расчет рекурсивного фильтра 1-го порядка

ВНИМАНИЕ! Это черновая статья, в которой уважаемые коллеги нашли много недочетов. Новый вариант см. здесь.
При обработке выборок АЦП часто говорят об усреднении. И нередко — о скользящем. Что такое скользящее усреднение? Обновление результата с каждым приходящим новым отсчетом. Можно сузить задачу: накапливать предыдущие результаты негде или не хочется. Тогда однозначно речь может идти только рекурсивном фильтре первого порядка.
Конечно, вещь писанная-переписанная :) Но бывает непросто выбрать из горы литературы простые расчетные соотношения. А для новичков в цифровой обработке сигнала придется разобраться в терминологии, ограничениях и еще во многом, не очень-то и нужном для построения простого скользящего фильтра.
Постарался в этой заметке дать известный материал так, чтобы его можно было использовать даже школьнику.


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

Простая утилита для расчета цифровых фильтров.

Нашел неплохую утилиту (увы, только под Win32) для расчета цифровых фильтров. Утилита древняя, не обновлялась с 2004 года, но со своими функциями справляется.

Собственно говоря, функции сводятся к следующему:

1. Пользователь выбирает тип фильтра и задает его параметры (частота дискретизации, частота среза и т. д).
2. Программа рассчитывает фильтр и визуализирует его характеристики.
3. Утилита может сгенерировать код на С с реализаций рассчитанного фильтра. Заявлена поддержка генерации кода на VHDL, но так и не реализована в текущей версии.

Основной плюс утилиты – простота. С ее помощью можно получить реализацию нужного фильтра без погружения в теорию ЦОС (хотя, безусловно, любому эмбеддеру изучить теорию ЦОС однозначно стоит).

Сгенерированный код, честно говоря, не фонтан, но в качестве основы сгодится.

Последняя версия Google Crome почему-то блокирует скачивание данной утилиты, хотя антивирус (avast) ничего страшного в исполняемом файле не находит.
  • +1
  • 17 августа 2012, 16:44
  • e_mc2
  • 1

LTC4054 Контроллер заряда литиевых аккумуляторов

Недавно возникла необходимость в зарядном устройстве для литиевых аккумуляторов. Покупать готовое решение не хотелось, тем более под рукой была плата от старого нерабочего телефона Samsung X100 с этой микросхемой на борту. Ее также можно найти и на платах от других моделей телефонов Samsung(C100, С110, Х100, E700, E800, E820, P100, P510).


Читать дальше
  • +3
  • 15 августа 2012, 17:32
  • rad
  • 1

Запуск USB AudioDevice на STM32F103C8

Уважаемое сообщество!
Уже больше недели бьюсь над запуском USB на STM32 в составе PinBoard2 — безрезультатно. В связи с чем и обращаюсь к вам за помощью.
Использую CooCox, а также в процессе неудачных попыток поставил TrueStudio, но как-то оно совсем не тру…
В CooCox создал новый проект, и подбросил туда файлы исходников, затем, путем правки многочисленных дефайнов, поскольку у меня не оригинальная отладочная плата, постепенно все это стало собираться и линковаться и даже отлаживаться, но устройство не определяется.
Последней правкой, на которую я расчитывал, было
#define HSE_VALUE 12000000

но это тоже не помогло.
В архиве кладу проект для CooCox.
Что я делаю не так? :-)
UPD:USB заработало, подробности в комментариях. Буду наращивать функционал.

Хинт: Замер напряжения питания на STM8L

Иногда бывает полезно узнать напряжение питания МК. Причем не через PVD, который просто покажет, что оно в одном из нескольких промежутков, а точнее. Зачем? Ну например для налюдения за разрядом батареи. Или для корректировки значений, замеряемых АЦП (в камнях 32 выводами нету пина Vref, и единственный доступный ИОН — напряжение питания).

Под катом я расскажу, как с довольно высокой точностью измерить напряжение питания, и как с его помощью корректировать показания АЦП.


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

Все о модуле распознавания голоса EasyVR (ex VRbot)


Сегодня я наконец возьму и эпически сорву покрова с этих самых модулей EasyVR, так как тема сисек, ящитаю, практически не раскрыта. Покрова буду «срывать полностью, полностью буду срывать», так что готовьтесь :)


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

ОСРВ OSA первоначальное знакомство

Разведение ОС в домашних условиях


Во-первых по OSA есть хороший учебник на самом же сайте осы www.pic24.ru/doku.php/osa/ref/download/intro и отличный chm дается прямо с ней, во-вторых на сайте навалом хороших примеров. Приводимые простые примеры только дополняют примеры автора осы. Это чисто практический опыт первоначального знакомства, вообще же это дело серьезное и требует внимания и серьезного отношения. Пятьсот раз я был уверен что это глюк операционной системы и в конечном итоге оказывалось что я всегда ошибался.

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