В продолжении хвастовства.

Отмазки


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


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

GP для построения графиков

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


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

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

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

Я не сторонник универсализации. Универсальные инструменты сложны в понимании, а внесение изменений в них практически невозможно, даже если всем очевидно, что у инструмента есть слабые стороны. Универсальные инструменты популярны и общеприняты, и это как их достоинство, так и недостаток. Вы не сможете просто изменить синтаксис Makefile, убрать скобки из лиспа, изменить раскладку qwerty, отменить существование реестра в Windows, или уменьшить количество опций gcc. Попытка переизобретения универсального инструмента, имеющего недостаток, всегда приводит к появлению универсального инструмента, имеющего недостаток. Нужно понимать это.

Универсальные инструменты удобны, но всё же, довольно естественно для каждой задачи иметь подходящий для ее решения инструмент.


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

ОС как библиотека

Иногда внезапно возникает необходимость сделать какую-то работу в коде программы в синхронном режиме — то есть, не конечным автоматом, а просто дожидаясь результата каких-то действий. Например, скачать http-страничку, или, того хуже, https-страничку.

Но и тормозить основной цикл тоже как-то не очень хорошо. На этот случай есть известное решение — ОС.

Но если требуется допилить уже существующий проект с минимальным вмешательством в остальной код?
Вот мне стало интересно сделать мини-ОС, которая подключается к проекту как библиотека. То есть, делаем вызов какой-нибудь функции os_Init() и получаем возможность создавать потоки, не вмешиваясь в работу основного цикла. Он продолжает работать, как будто никакой ОС и нет, просто иногда управление передаётся дополнительным потокам.



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

Подключаем проветриватель Aeropac SN к датчику CO2 AZ-7798 (UART)

AZ-7798
Появились новые версии проветривателей Aeropac с кнопочным управлением и дисплейчиком — Aeropac SN.
Старая доработка работать уже не будет.
Поэтому пришлось разрабатывать новую…
Управлять проветривателем будет веб-сервер на базе esp8266 + nRF24L01 для передачи данных. Он подключен к AZ-7798 через UART.
В проветриватель встраивается Atmel AVR Attiny44A + nRF24L01 для задание оборотов вентилятора.



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

Контроллер BLDC выпуск rev2

7 фото
image
Дополз до второй ревизии. Хотелось бы на ней и остановится, но разве может быть, чтобы не было ошибок. Только я пока о них не знаю, потому, что сделано еще мало тестов. Как обычно проверил формы напряжений в силовой части, проверил нагрев на токе 30А, его нет. Не хватает тестов при питании выше 12в, где бы взять. Нужен мотор мощнее, этому 30А уже много, да и проп 12x4.5 наверно уже порвет выше 6000 об./мин. А еще все это дома в комнате, шум, пыль, кот боится и убегает. И это всего то ~200 Вт мощности. Не придется ли мне собирать стенд двигатель-генератор с двумя контроллерами, чтобы экономить энергию а не распылять ее. А может быть рискнуть запитать контроллер от двух литиевых аккумуляторов шуруповерта, получится ~29в.

Показать все 7 фото →

STM8S103 и энкодер

На примере STM8S103F3

Инициализация

TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 0xFFFF, 0);
TIM1_EncoderInterfaceConfig(TIM1_ENCODERMODE_TI12, TIM1_ICPOLARITY_FALLING, TIM1_ICPOLARITY_FALLING);
TIM1_Cmd(ENABLE);

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

Получение текущего положения

position = TIM1_GetCounter();


Подключение

И не забываем

"CeleronTimer" C library топик-ссылка

Библиотека "Программных Таймеров" (реализация синхронных и асинхронных задержек в прошивке микроконтроллера). Особенности: Кроссплатформенность. Микроконтроллеры любой разрядности. Удобное и функциональное API. Нетребовательная к ресурсам МК. Дискретность отсчёта = 1мс. Достаточна для реализации пользовательского интерфейса (и прикладной логики) в устройствах на микроконтроллере.

Первый запуск STM32F030 и nRF24L01+ (china) Архив

Проект для IAR 7.4. Выкладываю по просьбе.
Библиотека отсюда stm32f4-discovery.com
Переделал для F0.
Обмен между двумя китайскими модулями, контроллеры stm32f030f4.
  • +1
  • 12 октября 2016, 21:18
  • Kitano8
  • 1

Где купить радиодетали в Токио или рынок Акихабара

Какие достопримечательности должен посетить человек впервые попавший Японию?..
Наверное Императорский Дворец, парк Уено, район Одайба и много-много других.
Куда пойдет радиолюбитель… правильно на местный радиорынок :)
И хотя подобный пост (и не один)можно найти в рунете, не ну а чем я хуже ;-)



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