Александр
Я увы не але
Максим
Ams1117
Максим
Плюс диод от переполюсовк
Александр
Ммм
Александр
Точно
Александр
Ams
Александр
Спасибо
Quiero vivir en España
Скажите, тип String не рекомендуют использовать?
Quiero vivir en España
и почему?
Quiero vivir en España
И если уж использование String - дурной тон, то что вместо него использовать?
Евгений
Арай чаров, но если новичок можешь ноги сломать, руки, мосг :)
I
и почему?
Много ресурсов использует по сравнению с char*
Quiero vivir en España
Арай чаров, но если новичок можешь ноги сломать, руки, мосг :)
Пока сломал. И понял, что нужно учиться. Смотрите, я получаю название файла в директории String s = file.name(); И могу этот Стринг модифицировать, например, взять имя без расширения: s = s.substring(0, s.lastIndexOf('.')-1 ); А как это же сделать с массивом char? Или вопрос проще - как перевести s в массив char'ов (функция только его воспринимает)
Quiero vivir en España
Много ресурсов использует по сравнению с char*
А могу я написать char * s = file.name(); ?
Quiero vivir en España
Написал дабы проверить, но там компилироваться будет долго.
I
Если file.name() возвращает char*, то можно. А может оно приведется само к char*.
Quiero vivir en España
Если file.name() возвращает char*, то можно. А может оно приведется само к char*.
file.name() Returns file name, as const char*. А вот какая разница между char* и const char* - это уже высшая математика. Жду, что IDE ответит...
I
или какой-нибудь .c_str() использовать
I
но вообще, советую почитать что-нибудь типа https://cplusplus.com/doc/tutorial/ntcs/
Quiero vivir en España
или какой-нибудь .c_str() использовать
Я так понимаю, String s, а потом s.c_str()
I
если file.name() возвращает String, то конечно становится сомнительной экономия. Все равно уже зашквар произошел :)
I
Если только чисто для практики
Quiero vivir en España
если file.name() возвращает String, то конечно становится сомнительной экономия. Все равно уже зашквар произошел :)
Выше написал - возвращает const char* Но он отличается от char* Чем? Написал так: char * s = file.name(); Компилятор выдал ошибку: invalid conversion from 'const char*' to 'char*' [-fpermissive]
I
char*s = (char*)(file.name());
Quiero vivir en España
Разница в размещении в памяти. Const char[] попадет во flash
Не понял, как результат работы функции попадает во flash, но ладно, вернусь к этому позже.
Quiero vivir en España
char*s = (char*)(file.name());
Благодарю. Теперь бы это понять.
I
char* is a mutable pointer to a mutable character/string. const char* is a mutable pointer to an immutable character/string. You cannot change the contents of the location(s) this pointer points to. Also, compilers are required to give error messages when you try to do so. For the same reason, conversion from const char * to char* is deprecated. char* const is an immutable pointer (it cannot point to any other location) but the contents of location at which it points are mutable. const char* const is an immutable pointer to an immutable character/string.
I
https://stackoverflow.com/questions/9834067/difference-between-char-and-const-char
I
изменяемый
I
immutable - неизменяемый. Это сейчас модные концепции в программировании
I
с этим не обязательно экспериментировать на микроконтроллере. Это обычный c
Quiero vivir en España
immutable - неизменяемый. Это сейчас модные концепции в программировании
Я охренеть какой не модный. Прочитал и подумал - а нафига?
I
во первых, это красиво 😻
I
в rust например по умолчанию вроде все immutable. чтобы случайно не срать куда не надо
Quiero vivir en España
char*s = (char*)(file.name());
Ответ есть, но, блин, для меня это набор каких-то скобок и звёздочек. Что значат скобки?
bbnmn
у сгорел что то на есп32
Slava
толи эта библа не умеет включать пины с номерами больше 20 толи я тупой. 😭😭😭 кто нибудь имел трудности и разбирался? https://github.com/Arduino-IRremote/Arduino-IRremote
Ruslan
immutable - неизменяемый. Это сейчас модные концепции в программировании
далеко не сейчас... гораздо проще пересоздать, чем патчить объект, поэтому и перешли на имутабельные объекты, особенно, когда память уже не так ценится
bbnmn
есть запах но есп работает
Илфат
C:\python\esptool-master>python.exe .\esptool.py --port COM23 --baud 115200 read_flash 0x00000 0x400000 Nodemcu_CH340 esptool.py v3.0-dev Serial port COM23 Connecting........_____....._ Detecting chip type... ESP8266 Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: c4:5b:be:e8:20:27 Uploading stub... Running stub... Stub running... A fatal error occurred: Timed out waiting for packet header Это так и должно? Всегда считывал прошивку
Quiero vivir en España
во первых, это красиво 😻
Да я уже видел, как вместо 0, 1, 2 используют parameter_cl_ws_sk_ms, parameter_on_off_cls_frs и parameter_mss_wwd_dda_abc. Охренеть как красиво!
I
Я думаю, дело не только в простоте, но и в защите
Slava
лично я в тебя верю 😉
ну спасибо, я наверно просто провода перепаяю. а номера ног у меня во внешнем файле настроек меняются
I
Пересоздание так или иначе берет время, тут скорее покупается pease of mind ценой издержек памяти и процессорного времени. Это я чисто с философской точки зрения рассуждаю.
Quiero vivir en España
Ещё есть .value
И .value - это char* ?
Илфат
Slava
внешний файл настроек, уже неплохо...
ну естественно, внешний, в самом начале деятельности сделал. как думаешь я десяток esp прошиваю одной прошивкой?
Илфат
Попробуй другую скорость
Мне, как бы, пофигу на родную прошивку. Хотя иногда интересно, чё они туда с завода прошивают ;)
пробовал разную
Держи тогда кнопку boot или флеш на модуле
Илфат
Держи тогда кнопку boot или флеш на модуле
Пробовал. Она ещё и не прошивается
Он ногу ио0 к земле подтягивает
Затем запускаешь прогу и кратковременно нажимаешь ресет
Илфат
Он ногу ио0 к земле подтягивает
Да она со своим USB. По ходу, придётся в ручную программировать с шаманством io0 ;)
Да она со своим USB. По ходу, придётся в ручную программировать с шаманством io0 ;)
С каким еще своим юзб? бут кнопку нажми эта кнопка ио0 садит на землю
Илфат
С каким еще своим юзб? бут кнопку нажми эта кнопка ио0 садит на землю
FLASH имел ввиду. Посадил IO0 на землю - прошилась. Непонятно почему средствами CH340G не программируется
FLASH имел ввиду. Посадил IO0 на землю - прошилась. Непонятно почему средствами CH340G не программируется
Они на разных дев бордах обозначаются по разному. Иногда бут, иногда флеш. Бывает такое случается. Может конденсатор плохо подобран
Илфат
Они на разных дев бордах обозначаются по разному. Иногда бут, иногда флеш. Бывает такое случается. Может конденсатор плохо подобран
Весь процесс прошивки приходится держать IO0 на земле. Иначе не до прошивается. Вылетает с ошибкой.
Илфат
в общем, посмотрю как по воздуху прошивается. тогда норм. оставлю. а китайцу отпишу
Илфат
В режиме boot mode:(1,6) не прошивается В режиме boot mode:(1,4) прошивается
В режиме boot mode:(1,6) не прошивается В режиме boot mode:(1,4) прошивается
Почитай в даташите какие регистры установлены при таких значениях. Я не помню уже
Илфат
я тоже не помню ;) Ладно. Разобрались Спасибо.
Илфат
Жить будет
bit 1 is for io 2, bit 2 is for io 0 and bit 3 is for io 15.
boot mode 4 видимо это когда IO15 в HIGH.
boot mode 6 - это это когда IO0 и IO15 HIGH)
Логично что оно не шьется)
Илфат
(1,6) выставляет при прошивке arduino ide. (1,4) когда я вручную io0 на землю кладу. Значит arduino ide через CH340G не кладёт через DTR io0 на землю. Ну баг доски или CH340G
Evgen
В файловой системе LittleFS открываем как char * dirname; Dir root = LittleFS.openDir(dirname); Ааааа как понять, что не отккрылось?
Evgen
if (!root->isDirectory)
спасибо. Первый раз вижу такой изврат. А корень там какой? А то на "/" ругается, что это не директория
спасибо. Первый раз вижу такой изврат. А корень там какой? А то на "/" ругается, что это не директория
Там не изврат. Просто openDir всегда создает объект Dir, просто не указывает ему переменную _impl если такого объекта не существует (она будет нулем) Дальше в коде есть проверка в любой функции, если не !_imp) return false