Size: a a a

2019 December 11

А

Антон in STM32
Nikolay Oleynik
Вообще в идеале не юзать блокирующие функции, либо организовать одну задачу по работе  с spi(например) и отдавать или принимать  данные этой/с этой задачи с помощью очередей
я всегда к этому прихожу, либо работа с конкретной переферией в одной задачи, либо с конкретным интерфейсом. это скажем так знак хорошего тона, как по мне. блокирующие функции-забирают управление на себя, и не возвращают пока не произойдёт завершение обработки(в случае интерфейсов это приём или передача данных) ? или я не верное представление имею?
источник

NO

Nikolay Oleynik in STM32
Антон
я всегда к этому прихожу, либо работа с конкретной переферией в одной задачи, либо с конкретным интерфейсом. это скажем так знак хорошего тона, как по мне. блокирующие функции-забирают управление на себя, и не возвращают пока не произойдёт завершение обработки(в случае интерфейсов это приём или передача данных) ? или я не верное представление имею?
Именно так, при этом если блокирующа функцию прервет другая задача, то все сломается, потому что проц будет занят доугии, а не перекладыванием данных из регистра в память
источник

NO

Nikolay Oleynik in STM32
Поэтому их в критикал секции пихать нужно
источник

А

Антон in STM32
вот, понял, спасибо!  для меня пока эта информация была догадкой.  пока просто не столкнуся с тем что терял данные.
источник

AS

Alexey Sidorov in STM32
Nikolay Oleynik
Именно так, при этом если блокирующа функцию прервет другая задача, то все сломается, потому что проц будет занят доугии, а не перекладыванием данных из регистра в память
Ничего не сломается.
источник

AS

Alexey Sidorov in STM32
Прервется передача и возобновиться, а так так spi по сравнению с процом тормозной, то и скорее всего не заметите даже задержки в связи
источник

А

Антон in STM32
Alexey Sidorov
Прервется передача и возобновиться, а так так spi по сравнению с процом тормозной, то и скорее всего не заметите даже задержки в связи
ну тут не только про SPI речь идёт... например Ethernet. большой пакет может приходить в память, а если тут закончиться 1мс тик. то по хорошему должен быть буфер. независимый, но на однозадачном проце закончиться потерей данных((
источник

А

Антон in STM32
по логике...
источник

AS

Alexey Sidorov in STM32
У eht пакеты принимаются и отправляются в неблокирующем режиме
источник

NO

Nikolay Oleynik in STM32
Alexey Sidorov
Прервется передача и возобновиться, а так так spi по сравнению с процом тормозной, то и скорее всего не заметите даже задержки в связи
Если происходит например прием, прервались надолго, ну например в другом потоке сработала критическая секция и там надолго что-то застряло...
А передатчик же не ждет, он как маслал, так и маслает, мы можем потерять данные
источник

NO

Nikolay Oleynik in STM32
Поправьте меня, если не прав
Просто это наглядно у меня было, что собственно логично
источник

NO

Nikolay Oleynik in STM32
По поводу того, что проц быстрый, а интерефейс медленнее намного, согласен, тут бесспорно можно успеть, если в другом потоке не произойдет факап с задержкой
источник

А

Антон in STM32
так в примере и передачу рассматривали... при передаче тоже могут быть проблемы. не в SPI но всё же.
источник

E

Eddy in STM32
Господа, просьба не закидывать тапками, знакомлюсь с программированием контроллеров, есть представление, к чему хочу придти, но не знаю нюансов. Речь идет о котле отопления на отработке. Хочу управлять оборотами воздушного насоса в зависимости от температуры водяного контура(ds18b20), выводить температуру при этом на 1602 дисплей. Тоесть поддерживать примерно постоянную температуру в помещении. Направьте пожалуйста на мануалы, которые мне понадобятся. Контроллер blue pill
источник

SS

Semyon Sv in STM32
Eddy
Господа, просьба не закидывать тапками, знакомлюсь с программированием контроллеров, есть представление, к чему хочу придти, но не знаю нюансов. Речь идет о котле отопления на отработке. Хочу управлять оборотами воздушного насоса в зависимости от температуры водяного контура(ds18b20), выводить температуру при этом на 1602 дисплей. Тоесть поддерживать примерно постоянную температуру в помещении. Направьте пожалуйста на мануалы, которые мне понадобятся. Контроллер blue pill
PID
источник

SS

Semyon Sv in STM32
Хотя бы вот, вроде платформонезависимая https://github.com/br3ttb/Arduino-PID-Library/
источник

E

Eddy in STM32
Спасибо! Буду разбираться
источник

КБ

Константин Буланов in STM32
источник

E

Eddy in STM32
Спасибо!
источник

А

Артем in STM32
stD
Этому есть объяснение, которое конечно же следовало бы где-то написать большими буквами ))). И в этом нет вашей вины, равно как и нельзя это отнести к "глюкам".

Дело в том, что вы сначала настроили АЦП обычно (без ДМА), сгенерировали проект и поигрались, а ДМА настроили после этого! Поэтому Куб и прописал инициализацию ДМА после инициализации АЦП, так не умеет предугадывать мысли разработчиков))).

Вы можете это прверить если отключите в Кубе всё что связано с АЦП, а потом настроить заново с ДМА - инициализация будет прописана правильно.

Я сейчас пишу статью про ДМА и обязательно акцентирую на этом внимание.
А это справедливо для другой переферии? Скажем uart i2c spi ??
источник