Рейтинг
+3.39
avatar

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

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

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

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

Задача абсолютных энкодеров — выдавать непосредственное значение угла поворота, пусть и в своих единицах.

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

Числа с фиксированной запятой

Расчеты в наших устройствах не всегда (мягко говоря) бывают целочисленными, а использовать числа с плавающей запятой (float или double) — весьма ресурсозатратно и не всегда корректно. Что же делать?



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

ARM Architecture Fundamentals

В этом видео, Chris Shaw рассказывает о истории ARM, о том, как устроены ARM процессоры и о том, какие версии архитектуры бывают. После просмотра становится понятно, почему ARM процессор именно такой, какой он есть.

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

CRC прошивки средствами IAR и STM32

Который час идет обновление вашей прошивки в устройстве управления реактором. Данные передаются из далека по спаренной телефонной линии, в которую сумасшедшая бабка орет о том, что ядерный реактор плохо влияет на ее кошку. Один неправильно записанный байт и город станет зоной отчуждения. Как предотвратить трагедию? Конечно, контроль целостности прошивки :)

Ну, а если серьезно, то контроль целостности прошивки нужно иметь чуть в каждом проекте, не обязательно в тех, которые могут сделать что-то плохое.

схема вычислителя CRC32

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

Библиотека mbed стала открытой

mbed — это отладочная плата платформа на Cortex-m3 микроконтроллере. Платформа, потому, что кроме самой отладочной платы там есть своя отличная библиотека, и даже свой(!) облачный(!) компилятор и IDE.

Платформа собрала вокруг себя довольно много народу (даже у меня есть такая штучка), автор говорит о десятках тысяч разработчиков.

mBed opensource

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

Медианный фильтр на службе разработчика

filter

Недавно пришлось столкнуться с необходимостью программной фильтрации данных АЦП. Гугление и курение (различной документации) привело меня к двум технологиям: Фильтр низких частот (ФНЧ) и Медианный фильтр. Про ФНЧ есть весьма подробная статья в сообществе Easyelectronics, поэтому далее речь пойдёт про медианный фильтр.

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

Метод линеаризации нелинейных звеньев

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

Продолжу делаться секретами ТАУ. На этот раз вопрос коснется линеаризации. Очень часто два параметра связаны между собой нелинейной зависимостью. Гиперболической, параболической, логарифмической и т. п. Это очень неудобно при ведении расчетов. К примеру, у нас имеется энкодер на выходе которого серия импульсов. Частота вращения энкодера обратно-пропорциональна периоду следования импульсов. Общая задача — получить обратную связь по скорости. Вся шкала от 0 до 100% должна получиться относительно линейной, дабы впоследствии обеспечить стабилизацию скорости.
По катом графики из Calca, много воды и капелька теории:

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

Учимся программированию на С вместе: библиотека буфера FIFO

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

Планирую рассмотреть библиотеку кольцевого буфера, которую я набросал, когда мне таки надоело реализовывать эти буферы при каждом использовании UART… Библиотека представляет из себя всего несколько строк кода, поэтому ее легко описать, и в то же время мне хотелось бы обсудить некоторые недочеты с целью самообучения. Поэтому если будет смысл — возможно появится вторая часть этой стать, с названием «Работа над ошибками».

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

Цифровой задатчик интенсивности

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

Предположим, что у нас имеется электропривод, у которого скорость и ускорение задаются в процентах: от 0 до 100% скорости и от 0 до 100% достижения этой скорости в секунду. Немного теории и никакой практики под катом.


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

Как выглядят полиморфные объекты в памяти

Когда-то, я интересовался тем, как объекты С++ располагаются в памяти но быстрый гуглеж ничего не нашел. Недавно, я набрел на статью по теме и, думаю, она может помочь таким как я. Это — ее свободный перевод.

Полиморфизм

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