Вопросы по Modbus

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Мудрый кот
Сообщения: 1821
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

~Dimon~ писал(а): Сб сен 12, 2026 18:10:06Это слишком много, что бы считать внутри прерывания, а вытесняющей многозадачности у меня там нет.
А зачем для этого "вытесняющая многозадачность"? Для отделения уровня приёма от уровня обработки, достаточно иметь прерывание + фоновый процесс. Или прерывания двух разных уровней приоритета. Принимающее прерывание имеет более высокий приоритет и прерывает обрабатывающее прерывание или фоновый процесс.

PS: Это уже не говоря о том, что в наше время нет никакого смысла что-то делать на AVR. Когда есть в наличии много дешёвых ARM-ов, на которых нет никаких проблем ни с многозадачностью ни с множеством уровней прерываний.
Да даже на STM8 нет никаких проблем сделать такое разделение уровней.
Реклама
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Пт окт 28, 2011 16:01:18

Сообщение ~Dimon~ »

jcxz писал(а): Вс сен 13, 2026 10:10:06 А зачем для этого "вытесняющая многозадачность"?
За тем, что основной поток может быть занят другой задачей, и обработка принятого кадра будет ждать её завершения. Это может быть долго, до 3,5T можно не успеть.

Переделал.
По первому принятому байту, определяет мне ли пакет. Если нет - игнорирует остальные байты, по таймауту сразу на прием следующего пакета.
Вся обработка отложена.
Стандарт допускает, но бяку словить можно.

STM32 сделан значительно сложнее, особо разбирается с ним пока желания нет.
Будет заказ за деньги, с требованием точного соответствия - тогда посмотрим.
Реклама
Ответить

Вернуться в «Периферия»