Size: a a a

ESP8266 & ESP32 [RU]

2021 February 28

DA

Dmitriy Asondo in ESP8266 & ESP32 [RU]
Aleksander Mironov
Вот никогда не умел. Чужой код это же фууу. В нем разбираться сидеть надо.
Если чужой код для вас фу, вероятно, вы и сами пишете фу-код)
В конце концы не спроста существует code convention, style guides, паттерны проектирования и всяческие принципы
источник

DA

Dmitriy Asondo in ESP8266 & ESP32 [RU]
Если код написан правильно, то его школьник сможет как книжку с упоением прочитать
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
И тут мы такие открываем код IDF...
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Анатолий Шириев
Как лучше всего организовать остановку двигателя из прерывания? Т.е. нужно создать задачу с высоким приоритетом чтобы она выполниласть 1 раз и выключилась
Так у вас же стандртная РТ ситуация получается.
Определите максимальное время требуемое время реакции.
Определите необходимый приоритет таска, в котором это время будет удовлетворятся.
Используйте QueueSet и во время не выполнения таска вставайте в ожидание события.

У вас проблема, что пытаетесь решить задачу, которую не до конца сформулировали. Как только поменяете с "ну тип быстро" на конкретное значение или отношение хотя бы - кол-во вариантов решения сузиться.
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Ой да, забыл, т.к. IDF написана с соблюдением кодстайла и соглашений, его родной API зачастую не до конца совместим с FreeRTOS функционалом, придется свои обертки писать.
Т.к. не все API блокающее задачу можно запихнуть в QueueSet
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Dmitriy Asondo
Если чужой код для вас фу, вероятно, вы и сами пишете фу-код)
В конце концы не спроста существует code convention, style guides, паттерны проектирования и всяческие принципы
Если женщину изнасиловали, она сама наверное виновата (с).

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

Но если вылезти из мультиков про цветных лошадей, оказывается что даже крупный проект типо тех-же Cpp оберток над IDF это просто много лет не поддерживаемое нагромождение чего либо, в документации которого написано "Лол ну тип работает" и неопределенной эрратой.
Апи которого представляет миниган с дилдаками из алика, балоном кокаколы, надписью можем повторить и кассовым аппаратом.
Ну что бы точно на все случаи жизни.
источник

DA

Dmitriy Asondo in ESP8266 & ESP32 [RU]
Ну в мире жирного интерпрайза, где я работаю, видимо идеальный мир)
Но согласен, в мире сишников какой-то лютый холокост в коде, пишут как психически неуравновешенные курицы под спидами
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Ну вот к слову за С соглашусь, но это опять же змея пожирающая хвост, пишут так, потому, что переиспользование кода ввиду технических особенностей самого языка очень слабо.  
Ты просто не вносишь столько чужого, что бы это серьезно требовалось.

Да и блин чего ожидать от языка, стандартная библиотека которого представляет из себя србски язк, а в самой массовой конвенции - функции и переменные пишутся в снейккейзом с маленькой буквы.
источник

АШ

Анатолий Шириев... in ESP8266 & ESP32 [RU]
Aleksander Mironov
Так у вас же стандртная РТ ситуация получается.
Определите максимальное время требуемое время реакции.
Определите необходимый приоритет таска, в котором это время будет удовлетворятся.
Используйте QueueSet и во время не выполнения таска вставайте в ожидание события.

У вас проблема, что пытаетесь решить задачу, которую не до конца сформулировали. Как только поменяете с "ну тип быстро" на конкретное значение или отношение хотя бы - кол-во вариантов решения сузиться.
У меня есть прерывание что там можно делать чего нельзя черт его знает. Задача простая и короткая пару тройку регистров изменить и все поэтому хочу вот прям щас без промедления все сделать и забыть до следующего прерывания
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Ну вам выше писали, управление сущностью в двух местах это не лучший прием. Хотя в короткой программе вполне приемлемо.
Если у вас что то большое - лучше откажитесь.

И такая формулировка так выглядит только сидя в контексте этого прерывания.
А надо бы смотреть на все целиком.

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

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
Поставьте флаг в прерывании, а в цикле просто проверяйте. Вам на булев который читается и пишется лишь в 1м месте даже мутекс не нужен.
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
Анатолий Шириев
У меня есть прерывание что там можно делать чего нельзя черт его знает. Задача простая и короткая пару тройку регистров изменить и все поэтому хочу вот прям щас без промедления все сделать и забыть до следующего прерывания
Так не бывает, Вот прям счас не получится никак, тот те же немаскируемые прерывания посылают вам привет :)
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
Aleksander Mironov
И тут мы такие открываем код IDF...
Отличный код кстати, у некоторых вендоров хуже в разы.
источник

A

AKE in ESP8266 & ESP32 [RU]
Aleksander Mironov
Если женщину изнасиловали, она сама наверное виновата (с).

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

Но если вылезти из мультиков про цветных лошадей, оказывается что даже крупный проект типо тех-же Cpp оберток над IDF это просто много лет не поддерживаемое нагромождение чего либо, в документации которого написано "Лол ну тип работает" и неопределенной эрратой.
Апи которого представляет миниган с дилдаками из алика, балоном кокаколы, надписью можем повторить и кассовым аппаратом.
Ну что бы точно на все случаи жизни.
"Лол ну тип работает" и неопределенной эрратой. - это прямо про сами чипы 👍🤣🤣
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
AKE
"Лол ну тип работает" и неопределенной эрратой. - это прямо про сами чипы 👍🤣🤣
источник

A

AKE in ESP8266 & ESP32 [RU]
И документация у китаëзов по esp крутая, как будто с разных форумов надëргали 🤦‍♂🤣
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
AKE
И документация у китаëзов по esp крутая, как будто с разных форумов надëргали 🤦‍♂🤣
Обычный https://www.sphinx-doc.org/en/master/, для проектов на Си самое оно
источник

A

AKE in ESP8266 & ESP32 [RU]
Andy Korg
Обычный https://www.sphinx-doc.org/en/master/, для проектов на Си самое оно
Я про железо имею ввиду, сами контроллеры
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
документация могла быть хуже, но хотелось бы детальности
источник

AM

Aleksander Mironov in ESP8266 & ESP32 [RU]
но понятно чому так, они IDFы выпускают по 2 раза за сезон.
источник