intel aka Faza!!!
Спасибо
romanetz
Просто код пульнуть в плл отладка в есп такая навороченная не нужна )
romanetz
Принтф достаточно
intel aka Faza!!!
От есп там что надо? Sdr или pll
Управление плл синтезом отображение частоты работы уровня сигнала работа в канальном режиме с памятью а ещё возможность работы с кодами тонального вызова, суть такая есть станции которые переделываю ься под сатком, узкое место это количество каналов как аппаратной переделать станцию все давно знают, под это есть приборы, штатных 8 каналов как правило мало и тут появляется есп со всеми своими плюшками и возможностью работать по вафле
intel aka Faza!!!
А отладка счерез веб нужка что бы s метр откалибровать да каналы настроить
romanetz
Отписал в личку
intel aka Faza!!!
Оно и понятно повесь аудио кодек сделай квадратурным смеситель и есп и sdr потянет там и DSP на борту есть и мощности второго ядра хватит в полнне но пока нет полной потдержка всех аппаратных примочек это не подъёмные проект
Slava
Почему?
нет нормальных примеров, потому что не работает, когда сделаешь сборку разных алгоритмов и библиотек.
Andy
Наверно тогда проблема не в чипе или его ПО, а в освоении инструмента ... :(
Slava
Наверно тогда проблема не в чипе или его ПО, а в освоении инструмента ... :(
если есть примеры параллельных выполнений например i2c, spi, вэб сервера, запись spiffs, покажи. я пробовал на разных примерах из разных статей и видосов сделать многопоточного франкенштейна, не осилил. наверно, я слишком много хочу от есп32.
Slava
спсб почитаю
SetPf
если есть примеры параллельных выполнений например i2c, spi, вэб сервера, запись spiffs, покажи. я пробовал на разных примерах из разных статей и видосов сделать многопоточного франкенштейна, не осилил. наверно, я слишком много хочу от есп32.
В данный момент - SD карта, вебсервер(из html на SD), тцп-сериал, уарт0 в уарт2 мост с перехватом, логгирование в СД карту, ТЦП и уарт, обновление прошивки через веб. Если стол не шатать и громко не говорить - работает.
Slava
если это работает, делитесь знаниями, публикуйте исходники, от имени всех недоучек скажу, мы будем очень благодарны.
SetPf
Я сам с ESP и фриртосом чуть больше месяца знаком, по факту эта конфа + офф мануал. И все решения - метания в поисках кодстайла для С++ и архитектуры подобных решений. Там нечего показывать, каша и мясо.
SetPf
Я просто фиг знает, что не работает? Как не работает? Не может просто брать и не работать.
Andy
если это работает, делитесь знаниями, публикуйте исходники, от имени всех недоучек скажу, мы будем очень благодарны.
Это работает и в обратную сторону: задавайте конкретные вопросы, публикуйте исходники с неработающими местами. Вместе легче разобраться :)
SetPf
Хорошо что это никто из С++ конфы не видел, мне бы приехали морду бить наверно
Dr Zlo
тож люблю
Dr Zlo
Аналогичное на сях галимых пишу. Плюсы, особенно в версии C++11 и дальше - "оверинжиниринг"
На плюсах с например ETL гораздо быстрее писать, и что важно — гораздо лучше читать.
intel aka Faza!!!
🙈 дело за малым научиться писать ....
Andy
🙈 дело за малым научиться писать ....
Сначала сюда можно зайти.
Ivansuper
Сначала сюда можно зайти.
Перевод от гугла на левом (для гугла) сайте тех доки в разы лучше перевода майкрософта на их же родном сайте. Вот жеж
Arthur
Всем привет. Подскажите, почему могут выводиться такие сообщения при подключении по UART к ESP-32 (модуль на обычной китайской dev-kit плате с CP2102)? rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) flash read err, 1000 ets_main.c 371
Arthur
После erase_flash команды через idf.py ничего не поменялось
SetPf
Либо резет надо прожать, либо после прошивки выйдет сам (вроде)
Arthur
Либо резет надо прожать, либо после прошивки выйдет сам (вроде)
После прошивки официального blink - в уарт постоянно вылетает такое (лед не мигает и пин находится в Z-состоянии) rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:4 load:0x3fff0034,len:7032 load:0x40078000,len:13696 ho 0 tail 12 room 4 load:0x40080400,len:4000 secure boot check fail ets_main.c 371 ets Jun 8 2016 00:22:57
Arthur
Есть другая плата - на ней все работает (лед мигает) и в уарт подобного не летит. Но интересно понять, что с этой не так
Arthur
Может ли флеш каким-то образом быть залочена? Так как модули не новые, уже побывали в работе)
SetPf
Поясните за эвент лупы пожалуйста применительно к уарту. Я правильно понимаю, что это невероятно тормознутая хрень, по сравнению с просто чтением того что накопилось и парсингом в ручную?
SetPf
В том плане, что у меня посылки разделены последовательностью символов. Мне в обработку принятого надо уходить только тогда, когда они были получены. А с очередью событий - он будит задачу каждый раз, когда DATA_EVENT происходит, по приходу байта.
SetPf
А в более высокой ресурсоемкости, относительно - взять целиком накопившиеся данные и пройтись разом самому пропаршивая.
SetPf
Например, ожидается команда 5 байт и паттерн из 3 байт. Принимается 1ый байт - будится таск, обслуживается эвент, свичкейз. Принимается 2-3-4-5-п1-п2 все повторяется И только принимая п3 - выполняется полезная задача.
SetPf
И против этого - зайти раз в 50мс, взять что есть, распарсить разом и забыть на еще 50мс.
SetPf
Ну вот вопрос - насколько это более ресурсоемко чем 2й вариант?
SetPf
что значит "ресурсоемко" ?
В относительном кол-ве тактов. Я не оптимизации провожу, мне просто кажется там разница в сотни раз будет.
Andy
В относительном кол-ве тактов. Я не оптимизации провожу, мне просто кажется там разница в сотни раз будет.
Т.е. интересует сколько будет занят cpu если он будет ждать появления данных в FIFO или ловить прерывание по заполнению FIFO ?
Andy
Не сколько, а скорее насколько больше.
Наверно отношение будет 1/(длина FIFO) в предельном случае, если 1 прерывание полностью обрабатывает одну команду
SetPf
Я мб недопонимаю как ивент луп уарта работает?
SetPf
Мое понимание. Где то в недрах китайского кода, в уарт приходит байт, вызывается прерывание, он помещается в кольцевой буффер. В очередь ивентов закидывается событие UART_DATA и будятся задачи ожидающие этой очереди. Таск просыпается, ждет переключения контекста на него, берет из очеред ивент, берет из ивента тип, кидает в свичкейз, переходит.
Andy
Я мб недопонимаю как ивент луп уарта работает?
не знаю что такое "эвент луп" uart. :( Есть драйвер от вендора, вот им пользуюсь. Его feature:
Интересно а кто как котролирует у себя сработку того или иного задания для оконечных устройств. К примеру протекла вода из трубы датчик определил закрыл задвижку. А почему вы думаете что задвижка точно закрылась? Или канальный вентилятор как у @SlavaZagaynov к примеру как узнать что вентилятор в каналке точно выключился? Когда ты дома по звуку хоть можно определить а когда далеко.
Andy
Так вот вы же кинули.
Ждет появления в очереди данных от драйвера. Контекст же не перключается пока очередь пуста
SetPf
Ждет появления в очереди данных от драйвера. Контекст же не перключается пока очередь пуста
Так вот вопрос в том, что мне нужен только ивент UART_PATTERN, а все остальное - нафиг. Данные короткие 4-5 байт и паттерн 3 байта. А таск то будет разбужен не только на UART_PATTERN, но и на UART_DATA
Slava
А почему не датчик тока? Вообще вентилятор может должно вращаться после выключения.
у меня датчик тока не получилось использовать, у него погрешность большая, на 10-20 ватный вентилятор показания датчика тока очень малы, может конечно я чето не так делал
Andy
А почему не датчик тока? Вообще вентилятор может должно вращаться после выключения.
Потому что потребление тока вторично, по отношению к необходимому полезному действию - прокачке воздуха. Время вращения вентилятора это если нужно точный объем. Если нужен точный объем воздуха то измеряем именного - например давлением в рессивере или как-то так
SetPf
Вот это возможно подходит
Так вот он через ивенты и работает эти =\
Andy
Не, я к тому, что если нужно гарантировать, что вентилятор выключен. То что не крутятся лопасти - не значит, что он не ВКЛЮЧЕН.
Теперь ясно. Надо контролировать что лопасти не крутятся. Тогда нужен тормоз и опять датчик положения лопастей.
Andy
Так вот он через ивенты и работает эти =\
Не смотрел в исходники. Точно выбирает по байту из FIFO?
SetPf
Только все остальные ивенты вместе со свичкейзом вырезаны и заменены ифом
Andy
Зачем выходить из ожидания ?
SetPf
Невозможно на хардварное прерывание присобачить вызов функции. Я как понял вот этот паттерн детект это не прерывание, а просто софтовое событие.
SetPf
Зачем выходить из ожидания ?
Другие ивенты прилетают.
SetPf
UART_DATA - будет каждый байт прилетать же