romanetz
и отладка есть
D.S.
нет
про xod ide что скажите?
romanetz
хз не сталкивался
D.S.
хз не сталкивался
я его пару лет назад скачивал. начинал. потом забросил. сейчас уже даже и не помню что я тогда делал ))
romanetz
лично мне больше всего eclipse с esp-idf зашёл
Crunch
а platformio крут тем, что компиляция из-за кеша идет быстрее, когда вернулся снова к работе с микроконтроллерам. Сразу его поставил. Ардуинка стоит, но просто для того что бы убедиться что плата точно работает, тут удобен быстрый выбор и смена платформы. Но я еще не так сильно платформио изучил.
AKE
лично мне больше всего eclipse с esp-idf зашёл
Ключевое слово - esp-idf. Остальное на вкус и цвет
romanetz
как заебали, простите за мой французский, говнители ардуины
AKE
🤣
romanetz
покажите уже, чем она так провинилась, и чем esp-idf так крут (который есть в составе ардуины)
D.S.
покажите уже, чем она так провинилась, и чем esp-idf так крут (который есть в составе ардуины)
я не могу сказать что многое перепробовал. пробовал на флпрог. пробовал ксод. но тем не менее почему-то нашёл себя в ард.иде
AKE
Тот же функционал занимает в 2-3 раза больше объëма и во столько же раз тормознутее. Да, кода писать меньше, чаще вообще не писать. "Дайте скетч"
romanetz
Владимир
на их сайте
не нахожу... увидел новую версию 1.18.5 2,х не вижу..
Роджер
oid loop() { if ( Serial.available()>0){//Проверяем есть ли у нас в буфере данные b_com = Serial.read();//Читаем байт в переменную //Проверяем наличие стартового байта "#" if ( b_com == '#' ){ Serial.print("#"); delay(1); b_com = Serial.read(); Serial.println(char(b_com)); } } } Почему при отправке в плату: #1\r\n Вместо #1 получаю #?
romanetz
🤦‍♂️ потому что if b_com == '#'
romanetz
если нет - то ничего не происходит )
Владимир
на их сайте
а не.. нашол :)
Роджер
Да но вот эта функция получается в байтах: 255 49 и должна выводить тоже самое...
Роджер
м if ( Serial.available()>0){//Проверяем есть ли у нас в буфере данные b_com = Serial.read();//Читаем байт в переменную //Проверяем наличие стартового байта "#" if ( b_com == '#' ){ Serial.print(char(b_com)); delay(1); b_com = Serial.read(); Serial.println(char(b_com)); } }
Роджер
Даже вот так сделал и # выводиться верно
Роджер
if ( Serial.available()>0){//Проверяем есть ли у нас в буфере данные b_com = Serial.read();//Читаем байт в переменную //Проверяем наличие стартового байта "#" if ( b_com == '#' ){ Serial.print(char(b_com)); delay(1); b_com = Serial.read(); Serial.println(char(b_com+0x30)); } } А если сделать вот так получаю #/
Роджер
Вместо #1
Роджер
if ( Serial.available()>0){//Проверяем есть ли у нас в буфере данные b_com = Serial.read();//Читаем байт в переменную //Проверяем наличие стартового байта "#" if ( b_com == '#' ){ Serial.print(char(b_com)); delay(10); b_com = Serial.read(); char b = char (b_com); Serial.print(b); } } Вот так работает, но если delay(10); сделать как delay(1); то не работает, а вот почему?))))
romanetz
там вообще НЕ ДОЛЖНО БЫТЬ delay
romanetz
просто вот - забудьте про него
Роджер
А если не делать его то получаю ##
Роджер
там вообще НЕ ДОЛЖНО БЫТЬ delay
if ( b_com == '#' ){ Serial.print(char(b_com)); char b = char (b_com = Serial.read()); Serial.print(b); } Можно и так сделать, но без DELAY опять пошол знак вопроса вместо символа
Роджер
C
Тот же функционал занимает в 2-3 раза больше объëма и во столько же раз тормознутее. Да, кода писать меньше, чаще вообще не писать. "Дайте скетч"
да ладно, правда чтоли? прям в 2-3? получается в ардуине компилятор под eps8266 стоит какой то свой (а не тот, что с отдельной idf работает) ?
AKE
да ладно, правда чтоли? прям в 2-3? получается в ардуине компилятор под eps8266 стоит какой то свой (а не тот, что с отдельной idf работает) ?
А кто ж его считал точно во сколько раз. Бинарник от с++ всегда большего размера. +адруиновсеие либы
AKE
Сравните размер hello world из под адруины и IDF
Роджер
Я кажется понял, до этого стояла скорость 9600, поставил 115200 и теперь все работает адекватно
romanetz
там state machine должен быть (switch... case) или if'ы и флаги два состояния: ждём # и копируем байты до некоторого условия
Роджер
Dblbvj yt gjyzk
Роджер
видимо не понял
Nikita7131
Всем привет. А кто-то случайно не знает как можно уменьшить задержку внешних прерываний ? (Нужно засекты сигнал который длится доли десятих микросекунди и в щотчику прибавить 1) (esp32, arduino ide)
Роджер
там state machine должен быть (switch... case) или if'ы и флаги два состояния: ждём # и копируем байты до некоторого условия
В идеале я пишу низкоуровненый протокол обмена, где мне нужно по команды выслать данные с датчика. А если датчик повжерден прислать пакет что датчик не работает. провести внутреннию диагностику и выдать ошибку в ответе, а если все ок, выдать пакет данных
romanetz
RMT это блок подсчёта импульсов/интервалов между ними в составе esp32
Nikita7131
RMT это блок подсчёта импульсов/интервалов между ними в составе esp32
Если не трудно можете подсказать где можно найти пример кода ?
romanetz
esp-idf examples google
Rainbow
зачем ему RMT, если вопрос про протокол. хз откуда я знаю основы (ссылку не смогу скинуть), там обычно несколько уровней, первый это magic number, предположительно начало пакета, так проще, любое число из головы длина пакета тело пакета контрольная сумма (проверка на помехи) для задачи (второй уровень) в тело пакета класть первое поле byte с типом "ок или ошибка" дальше данные или ошибка тип ответа можно перенести на первый уровень
Rainbow
а, сорян
Rainbow
https://kaitai.io/ при разработке таких штук рекомендую использовать эту штуку там формальный язык описания протокола + кодогенерация под популярные языки + ide
Rainbow
Пример чего? Кода?
Nikita7131
esp-idf examples google
возможно я не так понял, но там пример работы с ir датчиком и конвертирования сигнала в данные. (Я ищу какую-то быструю замену attachInterrupt)
Rainbow
Вы дайте мне лучше пример
ZIGBEE выглядит тем протоколом, что вам нужен
Rainbow
Rainbow
romanetz
если там меньше микросекунды - то это почти потолок, я бы меньше, чем на сотню-другую нсек и не закладывался бы с прерываниями
великий
норм схема питания для есп?
Номиналы С8 и С9 перепутаны между собой. 100 мкф норм... Почему бы и нет. Очень нужно меньше? Ну надо пробовать... Если пульсаций не будет то можно и меньше.
romanetz
считайте импульсы через RMT, а потом факт их наличия из буфера RMT вытаскивайте
romanetz
таймера ещё, кстати...
romanetz
если они в захват умеют в esp32
великий
if ( Serial.available()>0){//Проверяем есть ли у нас в буфере данные b_com = Serial.read();//Читаем байт в переменную //Проверяем наличие стартового байта "#" if ( b_com == '#' ){ Serial.print(char(b_com)); delay(10); b_com = Serial.read(); char b = char (b_com); Serial.print(b); } } Вот так работает, но если delay(10); сделать как delay(1); то не работает, а вот почему?))))
Значит за 1мс не появляется очередной символ в сериал. if ( Serial.available()>0) Чтобы не подбирать время паузы и вообще не использовать паузу нужно проверять Serial.available() перед каждым чтением. И читать второй символ протокола только когда Serial.available() больше нуля.
великий
Это можно реализовать разными способами. Например читать из сериал не побайтово а сразу весь пакет. И парсить его. Или читать побайтово, проверять на символ начала пакета потом в бесконечном цикле ждать когда Serial.available()будет больше нуля и читать очередной символ.
великий
Ну или тупо подобрать задержку ка уже и сделано выше)
Роджер
Звучит все супер, но по факту я сижу разбираюсь и потом пишу статьи которые более понятны чем выше описанная муть. Сейчас тяжело найти очень хорошие описание, по которому с первого раза все будет работать как тебе надо.
Роджер
А разбираться это обязательно нужно) Это норма)
Я так понимаю сейчас на рынке, все меньше и меньше профессионалов и больше инфо цыган. Даже нормальные курсы не пройдешь. У нас есть тут в Сколково отделение учат детей программированию по урокам youtube.
великий
Я так понимаю сейчас на рынке, все меньше и меньше профессионалов и больше инфо цыган. Даже нормальные курсы не пройдешь. У нас есть тут в Сколково отделение учат детей программированию по урокам youtube.
Хотя идея понятна и нужная. Согласен нет доступной целостной обучающей программы. В которой выверено давались бы знания нужных фактов и навыки самостоятельного изучения возникающих вопросов при минимуме затрат времени и сил.
Роджер
Хотя идея понятна и нужная. Согласен нет доступной целостной обучающей программы. В которой выверено давались бы знания нужных фактов и навыки самостоятельного изучения возникающих вопросов при минимуме затрат времени и сил.
Ксожелению более или менее понятная и отличная информация, у самоучек на английском языке. Толи мы так просто развиты. толи наш рынок туреда не требует таких высоких специалистов.
Георгий
Доброго дня всем. Подскажите недорогую шуструю АЦПху для использования с ESP32. Буду трёх фазное напряжение ⚡измерять. Благодарю.