cortex-m4

  • ХабрахабрФото [Из песочницы] Как подключить АЦП HX711 к NRF52832

    [Из песочницы] Как подключить АЦП HX711 к NRF52832

    1. Введение На повестке дня стояла задача разработать протокол общения микроконтролера nrf52832 с двумя полумостовыми китайскими тензодатчиками. Задача оказалась не простой, так как столкнулся с отсутствием какой — либо внятной информации. Вероятнее, что «корень зла» находится в самом SDK от Nordic Semiconductor — это постоянное обновления версий, некоторая избыточность и запутанность функционала. Пришлось писать все с нуля. Я думаю эта…

    Читать далее »
  • ХабрахабрФото Что делать, если поймал HardFault?

    Что делать, если поймал HardFault?

    Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться. Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он никак не обрабатывается, а просто остаётся висеть в бесконечном цикле обработчика, предусмотренном в startup файле производителя. В то же время программист…

    Читать далее »
  • ХабрахабрФото Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32

    Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32

    namespace rect_coord_lit { const t_rect_coord comma[] = , {3, 25, 5, 28}}; const t_rect_coord dot[] = {{0, 20, 5, 25}}; const t_rect_coord space[] = {{0, 0, 0, 0}}; const t_rect_coord _0[] = {{0, 0, 15, 5},{0, 5, 5, 25},{5, 20, 15, 25},{10, 5, 15, 20}}; const t_rect_coord _1[] = {{10, 0, 15, 25}}; const t_rect_coord _2[] = {{0, 0, 15,…

    Читать далее »
  • ХабрахабрФото Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM)

    Безопасный доступ к полям регистров на С++ без ущерба эффективности(на примере CortexM)

    Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg Всем доброго здравия!В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем. Сегодня я хочу показать идею как можно сделать безопасным доступ к регистру и его полям без ущерба эффективности, используя сгенерированные на основе SVD файлов С++ классы. Кода будет…

    Читать далее »
  • ХабрахабрФото Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4)

    Синглтон размещающий объекты в ROM и статические переменные(С++ на примере микроконтроллера Cortex M4)

    Теперь же я хочу рассказать, как можно использовать порождающий шаблон одиночка для создания объектов в ROM. В предыдущей статье Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора), был разобран вопрос о том, как расположить константные объекты в ROM. Введение Очень много было уже написано про Singleton(далее по тексту Синглтон) его положительные и отрицательные стороны. Но несмотря…

    Читать далее »
  • ХабрахабрФото Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора)

    Где хранятся ваши константы на микроконтроллере CortexM (на примере С++ IAR компилятора)

    Я обучаю своих студентов работе с микроконтроллером STM32F411RE, на борту которого имеется аж целых 512 кБайт ROM и 128 кБайт ОЗУОбычно на этом микроконтроллере в ROM память записывается программа, а в RAM изменяемые данные и очень часто нужно сделать так, чтобы константы лежали в ROM.В микроконтроллере STM32F411RE, ROM память расположена по адресам с 0x08000000...0x0807FFFF, а RAM с 0x20000000...0x2001FFFF. И если…

    Читать далее »
  • ХабрахабрФото [Из песочницы] Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля мета программирования

    [Из песочницы] Аппаратный bit banding CortexM3/M4(ARM), архитектура ядра, ассемблер, С/C++14 и капля мета программирования

    Введение Внимание, это не очередная «Hello world»статья о том как помигать светодиодом или попасть в свое первое прерывание на STM32. Однако, я постарался дать исчерпывающие объяснения по всем затрагиваемым вопросам, поэтому статья будет полезна не только многим профессиональным и мечтающим стать таковыми разработчикам (как я надеюсь), но и начинающим программистам микроконтроллеров, так как тема эта почему-то обходится стороной на бесчисленных…

    Читать далее »
  • ХабрахабрФото Post-mortem отладка на Cortex-M

    Post-mortem отладка на Cortex-M

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

    Читать далее »
  • ХабрахабрФото Post-mortem отладка на Cortex-M

    Post-mortem отладка на Cortex-M

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

    Читать далее »
  • ХабрахабрФото Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

    Ардуино термометр & гигрометр с E-PAPER на nRF52832 — или о том, что забыли выпустить производители

    Приветствую всех читателей Habr!!! В своей очередной статье снова поведу речь о ARDUINO. Хочу поделиться с Вами очередным своим проектом реализованном на микроконтролере nRF52832. Это датчик температуры и влажности на sht20 | (даташит) c монохромным дисплеем на электронных чернилах(E-INK|E-PAPER), который является частью экосистемы MySensors. Основной его функционал это мониторинг температуры и влажности в помещении, отправка данных на контролер умного дома…

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


Кнопка «Наверх»