Pull to refresh
2
0
Максим @mctMaks

инженер-программист

Send message
а были статьи с описанием, как ваш анализатор устроен? Как происходит сам процесс анализа, используется поиск определенных шаблонов или что-то ещё?
мне любопытно, но сам не могу полностью понять как такая штука работает.
Но даже если он по опросу будет делать, нога в этот момент используется как spi MISO и не может одновременно использоваться как прерывание от порта и как аппаратный MISO spi.


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

Например, можно сделать более красиво и изящно, периферия это позволяет. Опишу немного абстрактно как это можно сделать:

0. Заводиться группа PPI. В нее добавляем один канал, который будет по-сути DREADY сигналом. Группа нужно из-за одной замечательной фукнции, ее можно включать\выключать через PPI.

1. Канал PPI настраиваем на старт чтения через SPI и отключение группы. Это нужно, чтобы не реагировать на каждый перепад фронта во время чтения;

2. второй канал PPI нужен для обратного включения группы после окончания чтения SPI.

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

если сильно интересно, могу поделиться своим опытом с nrf52840. Я на нем как раз с++ осваиваю)
Не соглашусь насчет документации, она более приятная чем у тех же ST или TI.

Это вы еще не пробовали вести свои проекты в этом SDK… у них на форуме про SDK мелькает фраза иногда «welcome to SDK pain!»
оно по другую тему. nRF Connect SDK — эта штука заточена больше по работу с операционкой зефир. Отсюда тенятся необходимость доустановки средств сборки зефира и проектов на нем. Не сложно, но долго.
Да и задача тут такая, что в обычном NRF5_SDK она решается проще.
Это можно считать коммерческим использованием, т. к. работа оплачивается и необходима лицензия на IDE…

ну тогда и 13% от бутылки в налоговую не забудьте занести)

с другой стороны можно же и обучится чем-то, делая устройство для дяди Васи, а то что у него вместо оценок — бутылка, так это метод образования такой.

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

Segger Embedded Studio
на ноутах не тормозит, для обучения и ознакомления совершенно бесплатна. собрана на Qt, кроссплатформенная. глюки и баги в наличии, куда ж без них.

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

Ничего себе. Так оно живое?
Думал что проект уже окончательно заброшен

например, запрет на неявное преобразование на этапе компиляции.
Будь любезен использовать cast для этого.

поддерживаю за использование С++ в МК. Проблем с переходом не возникло, зато несколько мелких ошибок, как с приведением типов, были найдены.
Таганрог. Вода из под крана ужасна, особенно для того кто переехал с Кавказа.
Присутствуют как посторонние запахи (хлор уже привычен стал), так и посторонние примеси в виде песка, ракушек, водорослей.

Стоит система с обратным осмосом, но иногда и её не хватает. Вода все равно солоновата на вкус. Механический фильтр живет в среднем 1,5 — 2 месяца, но после замены цвет с белоснежного на хаки меняет за пару дней.
Через два дня к нему пришли два местных чиновника и объяснили усилия правительства по борьбе с эпидемией, попросив сотрудничать. Они также сказали, что камера делает только неподвижные фотографии, когда в кадре происходит движение, она не записывает видео или аудио.


а какой тогда в ней смысл, если не она «не записывает видео» при наличии движения? Если она просто как триггер выступает на событие объект А покинул квартиру, то как быть с кучей ложных срабатывание из-за частого мелькания в кадре? а на котэ оно реагирует?

опять, же придут грабить квартиру. счастливый житель идет в полицию, камера же стоит. а ему в ответ: извините, она видео не писала так как в кадре было движение…
а отладчик Ozone от segger прикрутить не пробовали ()?

Поправочка, ЦАП ровно один, но двухканальный.

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

В общем, либо не до конца понял эту идею, либо эта идея для слишком специфичных задач.

без включения хедера все равно не обойтись, банально по причине объявления в онном битовых масок для сброса\установки флагов.
На вкус и цвет,…
Как по мне, в данном подходе есть необходимость помнить какие биты надо ставить и как они переопределены программистом.

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

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

и да, маленькая очепятка у Вас:
EXTI->EMR &= ~EXTI_IMR_MR7;
EXTI->IMR &= ~EXTI_IMR_MR7;

явно должно быть:
EXTI->EMR &= ~EXTI_EMR_MR7;

не смертельно, так как маски в данном случае одинаковы, но внимательности это не отменяет.
Вот пример модуля с интерфейсом SDIO JODY-W2 series (там еще есть и JODY-W3 серия):

Smallest, most flexible automotive modules supporting Wi-Fi 802.11ac at 105 °C
Dual band Wi‑Fi 2.4 GHz and 5 GHz 802.11a/b/g/n/ac
Dual‑mode Bluetooth 5 (Bluetooth BR/EDR and Low Energy)
Supports operation at 105 ° C
Simultaneous access point (AP), station (STA), or Wi‑Fi Direct (P2P)
Optimized for parallel operation of Wi‑Fi and Bluetooth

www.u-blox.com/en/product/jody-w2-series#tab-product-selection
судя по последним нескольким статьям предлагаю лозунг «даешь С++ на микроконтроллеры»
активно читаю данные статьи, не все понятно, но я пытаюсь. И вроде все хорошо, но хотелось бы чуть больше менее абстрактных примеров. Ну запись в регистры, ну много разных методов. Разнообразие это хорошо, но меня пока и мой подход устаивает.
А будет расмотрено что более сложное, чем запись в регистры? Например описание реализации класса по работе, скажем с I2C акселерометром. На чистом Си я знаю как это будет выглядеть, на С++ примерно. Там и наследование, и желание избежать лишенго кода, ибо на шине может быть и кто-то другой, да и разделенный доступ к ресурсу будет. Вот какие преимущества от использования С++ будут там?
Сам опыта в С++ имею крайне мало, да и то, из-за наличия желания повозится с GUI на QT
Если будет использован BMP280, то в файле main/bme280.c нужно закоментировать все строки помеченные // Comment for BMP.


почему тогда не воcпользоваться #ifndef… #endif для того чтобы исключать не нужные строки? зачем пользователя то заставлять лазить в код, искать и комметировать строки? Вроде ж очевидное решение и прямо таки просится…
в своё время старший брат научил играть в эту игру, называл её «матрица». наверно, из схожести с падающими символами фильма)
к короткому решению я шел долго… но когда его увидел, даже растроился. как-то оно очевидно при должном внимании

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Date of birth
Registered
Activity