цифровая электроника
вычислительная техника
встраиваемые системы

 

Генератор аддитивного белого гауссовского шума

Автор: Mike(admin) от 22-05-2014, 11:20

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


гауссовский шум

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



Конвертер BCD-ASCII

Автор: Mike(admin) от 12-05-2014, 13:15

Двоично-десятичный формат кода (BCD) часто используется при работе с LCD-дисплеями и часами реального времени. В BCD-числе каждый десятичный разряд рационального числа записывается в виде его четырёхбитного двоичного кода.


Двоично-десятичный формат числа

Для преобразования DCD-формата в ASCII-код и обратно помогут две приведенные ниже функции bcdToAscii() и asciiToBcd().

Простой макрос для манипуляции отдельными битами

Автор: Mike(admin) от 20-04-2014, 12:00

Каждый, кто работал с низкоуровневыми регистрами, сталкивался с необходимостью устанавливать, сбрасывать и инвертировать отдельные биты, не влияя при этом на остальные. Это требует запоминания серии команд, включающих OR, AND и NOT, которые проще реализовать как макрос.


Простой макрос для манипуляции отдельными битами

Нижеприведенный фрагмент кода реализует макрос для установки конкретного бита в лог. «1», сброса бита и его инвертирования, а также чтения значения бита.



Matlab-код для отображения данных с COM-порта

Автор: Mike(admin) от 10-04-2014, 05:25

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


matlab

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

Библиотека для работы с датчиком SHT11

Автор: Mike(admin) от 30-03-2014, 14:00

Для определения влажности и температуры радиолюбители в своих проектах иногда используют датчик SHT11 от Sensirion. Этот датчик с интерфейсом I2C обладает хорошей точностью измерений, поддерживает широкие диапазоны температуры, относительной влажности и рабочего напряжения.


SHT11

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

yasp - браузерный ассемблер с виртуальным микроконтроллером

Автор: Mike(admin) от 27-03-2014, 06:13

Уже немногие инженеры-программисты знают ассемблер, хотя он помогает понять принципы программирования встраиваемых систем и то, что стоит за языком C. Поэтому в последнее время стали появляться браузерные компиляторы и эмуляторы языка ассемблер для обучения и создания простых проектов, например, ASM80. Но два энтузиаста Роберт Фишер и Майкл «luto» Лютонски разработали полнофункциональную браузерную среду разработки, включающую в себя компилятор ассемблера, эмулятор и отладчик. Назвали они её yasp.


yasp

Самое интересное то, что в этой среде «аппаратные» элементы: микроконтроллер, потенциометр, кнопки, светодиоды. Так что, процесс отладки должен быть нагляден и удобен.

Реализация ПИ-регулятора с компенсацией эффекта насыщения

Автор: Mike(admin) от 15-03-2014, 07:30

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


ПИ-регулятор

Для борьбы с насыщением регулятора проверяется выход, и если P+I (пропорциональная и интегральная части) превышает требуемый диапазон регулирования, то новое значение интегратора не сохраняется, если все это только способствует насыщению. Это позволяет предотвратить большие выбросы при сильных шумах или при больших уставках на входе.

Программная эмуляция интерфейса I2C

Автор: Mike(admin) от 2-03-2014, 11:08

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


Шина I2C

Код на языке C с комментариями приведен под катом.

Браузерная среда разработки ASM80

Автор: Mike(admin) от 24-02-2014, 06:51

ASM80 представляет собой интегрированную среду разработки, предназначенную для написания программ на ассемблере для 8-разрядных процессоров вроде 8080, 8085, Z80 и 6502. ASM80 состоит из двух основных частей: редактора+ассемблера и отладчика. Эта среда разработки является браузерной, то есть вы можете работать с ней на любом компьютере, где установлен современный браузер.


asm80

Все файлы хранятся непосредственно в браузере, поэтому нужно завести аккаунт для онлайн-доступа к ним. Впоследствии их можно скачать в виде ZIP-файла на свой компьютер.

Простой алгоритм фильтрации зашумленных данных

Автор: Mike(admin) от 21-02-2014, 12:10

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


зашумленные данные

С помощью данного метода могут быть обработаны до шестнадцати 12-битных выборок, используя только четыре 16-битных ячейки ОЗУ. При 10 выборках в качестве деление представляет собой сдвиг на 3 разряда.