Портируем scmRTOS на MCU 8051

Только хардкор
В конце концов меня задолбала OSAL. Основной проблемой стала не ее кривость а сам принцип кооперативных систем. По факту кооперативка это более развитая форма конечного автомата. А это означает, что при разрастании системы увеличивается количество состояний. Причем эта зависимость ни хрена не линейная. В конце концов, в большом проекте, вы получите дохренилион глобальных состояний, локальных состояний, еще более локальны состояний и еще… При этом названия у этих состояний будут самые безумные, в определенный момент вы просто задолбаетесь выдумывать новые имена.

Было решено использовать ртос. Погуглив я ничего не нашел (кроме FreeRTOS, uC, и т.п. систем). По непонятным причинам я не стал их использовать, уже не помню почему я от них отказался. В итоге захотелось портировать уже обкатанную систему scmRTOS.


Читать дальше
  • +11
  • 20 ноября 2012, 03:24
  • a9d

Охотничий инстинкт против лени. Дисплей от Nokia 5300 XpressMusic.

Есть у меня один замечательный коллега. Замечателен он, прежде всего, своим добродушным нравом, но есть у него и еще одна замечательная черта: любит он погулять как следует, да в порыве страсти посеять телефон, реже – разбить. Благодаря ему у меня практически постоянно появлялись какие-то новые штучки и мобильные финтифлюшки навроде камер, дисплеев и прочих веселых яркоперделок, шморгалок и сопелок.
Однажды он, как обычно, весело катился на велосипеде с горки, да и упал на ровном месте. Ловко разбил коленку и телефон. Да так удачно, что корпус у телефона рассыпался в прах, а кишочки – нет. Коллега пытался склеить эту моргающую и цвиринькающую кучку металлопластика в телефон «Nokia 5300 XpressMusic», которым она, кучка, была прежде, да в итоге махнул рукой, и всю эту кучку отдал мне. Дел тогда у меня было много, да я и смахнул весь этот хламец в дальний ящик – до поры, до времени. И забыл напрочь.
Как тут понадобилось мне сварганить что-то вроде отладочного терминала с дисплеем – нужно было отладить один простенький полу учебный проект на простенькой ПЛИСине. Дисплей от Nokia6100 130x130 – мелко и не солидно, монстр на SSD1289 – Боже упаси; и тут вспомнил я о задаренной мне два месяца назад горке пластикового гомна мобильных ништяков. Вообще, по опыту, затея удачно заставить работать неизвестный ништяк мобильного происхождения в 70% случаев заканчивается неудачей

Читать дальше
  • +12
  • 02 ноября 2012, 03:53
  • SubDia
  • 1

CC2531/CC2540. Настройка CDC.

Один из больших плюсиков HAL библиотеки это очень легкая настройка CDC устройства.



Читать дальше
  • 0
  • 13 сентября 2012, 20:53
  • a9d

ZigBee 2007 (ZigBee Pro). Логический формат пакета данных от конечной точки.

Описание одного из наиболее важных пакетов (для разработчика).



Читать дальше
  • +2
  • 02 сентября 2012, 22:51
  • a9d

Знакомство с ZigBee.

Пришла пора, для меня, знакомится с ZigBee. Это то чего я боялся больше всего. Ибо придется выучить и прочитать ну очень очень много. Говорю сразу ZigBee это очень сложно.

Все картинки взяты с официального сайта Ti.



Читать дальше
  • +3
  • 20 августа 2012, 07:16
  • a9d

DAC в STM32

ЦАП (цифро-аналоговый преобразователь) нужен для преобразования числового кода в напряжение. Я опишу работу с ЦАП в stm32f100c4t6, там их целых 2 еще и 12-битных.

Они умеют:
  • Вывод напряжения от 0 до Vref+ (здесь это Vdda)
  • Генератор белого шума
  • Генератор треугольного сигнала
  • По DMA каналу на каждый ЦАП
  • Вывод данных по событию таймера или внешнего события
  • Возможность работы в 8-битном режиме
  • Возможность одновременной загрузки разных данных (через один регистр) в оба ЦАП


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

Руководство к быстрому старту по работе с периферией STM32F10x

Данная статья Logoпредназначена для тех, кто начинает изучать ARM-контроллеры ST Microelectronics серии STM32F10x и уже определился со средой разработки, но еще не взялся за собственно программирование. Я покажу, как средствами библиотеки STM32 Peripheral Library можно легко управлять периферией контроллера без прямого обращения к регистрам, а главное — научу, как искать информацию по работе с этой периферией.

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

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init( GPIOC , &GPIO_InitStructure);

Это пример настройки порта ввода-вывода (GPIO). Рассмотрим его поподробнее.


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

Феерическая расстановка точек над HDD motors. Часть 1

Всем привет! В статье попытаюсь разъяснить основные способы управления двигателем HDD и сходными с ним электрическими машинами.



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

Переносное радиодеталехранилище

По просьбе трудящихся напишу кратко про местообитание свое рассыпухи.
Мелкие детали, которых основная масса, храню в таких вот чемоданах, удобных для переноски.



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