Уроки Ардуино. Работа с текстом, String и char[]

Поделиться
HTML-код
  • Опубликовано: 11 сен 2024

Комментарии • 262

  • @0lympy
    @0lympy 3 года назад +66

    5:00 str[11] = NULL это неправильно, должно быть = '\0' тогда уж, потому что NULL это константа нулевого указателя (неинициализированного) типа адрес в памяти, а str[11] типа char. Получается лишнее преобразование типов, и в теории на некоторых системах может работать некорректно (если смотреть как на язык С в целом). То есть это все равно что написать str[11] = false, к 0 преобразуется, работать будет, но это лишнее неявное преобразование типов и логически некрасивый код.

    • @ArduNotes
      @ArduNotes  3 года назад +10

      однако да!

    • @dima12011201
      @dima12011201 3 года назад +5

      Вроде все норм. Тк char это 1байт. Null - 32 битный указатель (константа) преобразование 32 -> 8 работает норм и это статически при компиляции. Плохо если нулл используем на 64 бита. Там нужен nullptr

    • @lykabraine2766
      @lykabraine2766 3 года назад

      @@dima12011201 +

    • @lykabraine2766
      @lykabraine2766 3 года назад

      @@dima12011201 +

    • @lykabraine2766
      @lykabraine2766 3 года назад +5

      Вопрос почему я смотрю то шо знаю давно

  • @dms1304
    @dms1304 3 года назад +30

    Спасиьо за труды. Пожалуй, вы лучшее сообщество по этой тематике

    • @inqurity
      @inqurity 3 года назад

      *Лучшее в России, так-то уроков по С++ и Ардуино миллион

    • @MAD_ALEX
      @MAD_ALEX 3 года назад

      @@inqurity неужели в Казахстане есть лучше уроки?)

    • @inqurity
      @inqurity 3 года назад

      @@MAD_ALEX Упс, я имел ввиду на Русском

    • @maksimma_ko6321
      @maksimma_ko6321 3 года назад +2

      Подтверждаю круть да и только из за этого засранца я купил себе ардуинку

    • @user-ju6bl8zh9g
      @user-ju6bl8zh9g 3 года назад

      @@maksimma_ko6321 транжира Вы, однако)))

  • @Aptekar_
    @Aptekar_ 3 года назад +43

    Как программист -нетрадиционной- объектной ориентации, пожалуй всё же буду использовать стринги)

  • @StoneTL
    @StoneTL 3 года назад +4

    Как раз этого мне и не хватало в одном проекте месяца 2 назад! Но зато теперь всё понятно и под рукой) Спасибо

  • @cvitaly2033
    @cvitaly2033 3 года назад +4

    Отлично. Надо пересмотреть свои скетчи

  • @Syjalo
    @Syjalo 3 года назад +30

    Я уже совсем запутался о каких стрингах идет речь

  • @Slavasil
    @Slavasil 3 года назад +9

    Зашел не по колокольчику, а по расписанию!)

  • @konstantingolinskiy4944
    @konstantingolinskiy4944 3 года назад +4

    Чтобы помещать в строки разные значения float int и .т.д а также из строки извлекать их можно воспользоваться функцией sprintf() sscanf()

    • @ArduNotes
      @ArduNotes  3 года назад +4

      одна эта функция тяжелее чем весь String, а выполняется лучше даже не знать сколько))

  • @AlejandroFedorov
    @AlejandroFedorov 3 года назад +2

    Полезненько. Убавит времени копания в доках. Сенкью

  • @iqubik
    @iqubik 3 года назад +2

    Я как раз в конце ждал что-то такое как сделал Алекс. Ведь оно прям напрашивалось! Спасибо

  • @Romulus1988
    @Romulus1988 3 года назад +85

    Гайвер наконец-то объяснил, что лучше жить без стрингов

    • @mmiro
      @mmiro 3 года назад +2

      На самом деле нет

    • @Al.Sy.
      @Al.Sy. 3 года назад +2

      "За всё приходится платить." Старий амэрыканский поговорька.

    • @user-dq2ci5ln5g
      @user-dq2ci5ln5g 3 года назад +1

      Да, зачот! Ходите в семейниках! 👍😁🤪

    • @user-dq2ci5ln5g
      @user-dq2ci5ln5g 3 года назад

      @@Al.Sy. Пронька рулит! 👍😁🤪

    • @Al.Sy.
      @Al.Sy. 3 года назад +2

      @@user-dq2ci5ln5g В США наши туристы как-то вводили моду на семейные трусы на пляже. И американцы купились, подумав, что это новомодная фишка. :)

  • @Disorrder
    @Disorrder 3 года назад +2

    0:30 даа, именно поэтому в ledOS (или как там называется твоя библиотека для светодиодных лент) используется именно String, для обычного вывода строк на экран. Стоит убрать захардкоженные 2 строки и сразу памяти хватит на лишние 30-40 лампочек D:

  • @alexanderilyin2136
    @alexanderilyin2136 3 года назад +6

    Сделай следующий урок как лекция про указатели и память от А до Я, очень полезно

  • @masterkit9517
    @masterkit9517 3 года назад +4

    Побольше бы таких уроков

  • @siddha13
    @siddha13 3 года назад +2

    Алекс, огромная благодарность тебе за твои труды! Благодаря твоим урокам хочется изучать более низкоуровневые вещи

    • @XpIOHdeJIb3000
      @XpIOHdeJIb3000 2 года назад

      а нафига ардуинщикам знать низкоуровневые вещи?

    • @user-wm4cs1us2q
      @user-wm4cs1us2q 2 года назад

      @@XpIOHdeJIb3000 Чтобы с ардуино пересесть на более продвинутые МК и т.д. Ардуино ведь начальный уровень

    • @XpIOHdeJIb3000
      @XpIOHdeJIb3000 2 года назад

      @@user-wm4cs1us2q а по-моему ардуино - это путь куда-то "налево"

    • @user-wm4cs1us2q
      @user-wm4cs1us2q 2 года назад

      @@XpIOHdeJIb3000 Ардуино - это просто плата с микроконтроллером, и главное в ней именно микроконтроллер. Так что вы можете программировать эту плату хоть на ассемблере, как взрослые дяди это делают, и, также как другие МК программируют, но новичкам это сложно, особенно если они не разбираются в программировании и в архитектурных особенностях того или иного МК.

    • @XpIOHdeJIb3000
      @XpIOHdeJIb3000 2 года назад

      @@user-wm4cs1us2q ардуино как раз таки и приучает не разбираться, а пользовать кривоногими библиотеками.

  • @user-bb3bx6gl7j
    @user-bb3bx6gl7j 3 года назад +2

    Привет! Полезная информация! Приятно слушать!
    А если по факту - всю голову мне сломал)))

  • @EugeneTit1
    @EugeneTit1 3 года назад +4

    Я делаю так : Serial.println(F("initialization done.")); // оптимизировано для экономии памяти

  • @azikamel5624
    @azikamel5624 Год назад

    Вы замечательный человек, большое спасибо за ваше красивое и быстрое объяснение

  • @antonzavidov7328
    @antonzavidov7328 3 года назад +2

    Огромное спасибо тебе за этот материал!

  • @user-uw6nh4rt3k
    @user-uw6nh4rt3k 3 года назад +2

    Видеоурок улеттт!

  • @antonmoshkovich492
    @antonmoshkovich492 3 года назад +2

    Спасибо! Очень полезно!

  • @AlexLink-rb5by
    @AlexLink-rb5by 3 года назад +1

    Прикольно.. только всё это проходил на занятиях и сдал экзамены по с++))) спасибо!!! Лайк!!!

  • @Gameplayer55055
    @Gameplayer55055 3 года назад +48

    Указатель, это когда по очереди пробуешь text *text &text, пока линтер не перестанет ругаться

  • @user-iv5bk3bq1w
    @user-iv5bk3bq1w 3 года назад +1

    Спасибо Алекс Гайвер полезный урок был.

  • @Nachmed
    @Nachmed 3 года назад +1

    Спасибо за урок и Mstring!

  • @Codeman47Rus
    @Codeman47Rus 3 года назад +1

    Спасибо. Еще не досмотрел, но уже очень круто и понятно. Может так и до ассемблера дойдем)))

  • @user-wd2qe9rb8o
    @user-wd2qe9rb8o 3 года назад +1

    Благодарю за уроки!!!

  • @v61kz
    @v61kz 3 года назад +5

    Большая разница в скорости💪
    Но - не так просто и не так удобно как стринги🙃

  • @omygod1984
    @omygod1984 3 года назад +1

    Ура😬🍻
    Новое, интересное видео🎥
    Спасибо Алексу 👍
    Ждем продолжения 🤓

  • @hutoryanin
    @hutoryanin 3 года назад

    Кайфы) Теперь мне яснее стало как работать с указателями.
    *Л. а. й. к.*

  • @inqurity
    @inqurity 3 года назад +2

    Отличный урок!

  • @user-vs4vv6ev2m
    @user-vs4vv6ev2m 3 года назад +1

    Шикарный урок!

  • @txchumberrxnumber6604
    @txchumberrxnumber6604 11 месяцев назад

    Pointer points to variable -- указатель указывает на переменную. Value inside variable --значение внутри переменной.

  • @hottabychable
    @hottabychable 3 года назад +1

    Давайте еще опишем многомерные массивы, будем использовать указатель на указатель, потом использовать операцию разыменовывание, потом создадим на основе этого структуру и будем думать использовать стрелку или точку))))

    • @ArduNotes
      @ArduNotes  3 года назад

      указатель на указатель - да, типичная схема хранения и использования строк =) в том числе в программной памяти

  • @salmantechnologies282
    @salmantechnologies282 3 года назад +6

    Сэр, пожалуйста, добавьте к видео английские субтитры

  • @maxim190840
    @maxim190840 3 года назад

    Алекс, ты супер молодец!

  • @werdy64
    @werdy64 3 года назад

    Заставка с труселями просто огонь.

  • @jamesblack7412
    @jamesblack7412 3 года назад +1

    Офигеть, только вчера решил поковырять микроконтроллер, где пытался вспомнить указатели си)

  • @andrewgromow1112
    @andrewgromow1112 3 года назад +1

    Хорошая темка! ))

  • @TheDCSamara
    @TheDCSamara 3 года назад +9

    2:15 "Неуобно"... Хорошо что хотя бы О, а не Ё :)

    • @TheDCSamara
      @TheDCSamara 3 года назад +4

      Вкурил: это String потерял букву. Дырявые стринги ёпсель.

  • @topalek
    @topalek 3 года назад +1

    крутяк, спасибо

  • @KelevraSelevin
    @KelevraSelevin 3 года назад

    Здоровья тебе большого и крепкого )

  • @wad600
    @wad600 3 года назад +1

    Вау, шик блеск красота

  • @user-vg9mp5oh3q
    @user-vg9mp5oh3q 3 года назад +3

    запиши плз ролик по micropython на esp8266 или esp32

  • @user-wq4ft4gy2l
    @user-wq4ft4gy2l 3 года назад +1

    В задаче 3 cstr и comma при копировании в строку это количество символов до и после запятой?

  • @alexlinuxoid3507
    @alexlinuxoid3507 3 года назад +2

    3:40 есть проблема в формулировке, для обычного массива чаров валидно, но при прибавлении чаисла к указателю он сместится не на этл число байтов, а на sizeof(тип_на_который_ссылаемся) * число

    • @ArduNotes
      @ArduNotes  3 года назад +1

      да, через байт прыгает, массив указан специально byte =)

  • @azatfr
    @azatfr 3 года назад +2

    Расскажите пожалуйста про оверсемплинг и способы программного увеличения точности встроенного АЦП.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      урок по фильтрам есть на канале

    • @azatfr
      @azatfr 3 года назад

      @@ArduNotes тема дизеринга не раскрыта еще.

  • @некит1
    @некит1 Год назад

    1 задача: решение через sprintf
    2 задача: atoi
    3 задача: sscanf

  • @chinarulit1126
    @chinarulit1126 3 года назад +7

    Уроаи ардуино превращаются в уроки по
    C++🙂🙂🙂🙂

    • @ArduNotes
      @ArduNotes  3 года назад +6

      ну ардуино программируется на С++, не по питону же уроки делать =)

    • @Gameplayer55055
      @Gameplayer55055 3 года назад +2

      @@ArduNotes esp8266 micropython :)
      Скорее как сетап для обучения информатике, практической пользы нет

  • @eng283
    @eng283 3 года назад +1

    char Str[] = "Температура = Z00.0 C";
    uint8_t Znak, Tcel, Tdrob; // 1, 28, 3
    Str[14] = "-+"[Znak]; // 0 = "-" 1 = "+"
    Str[15] = "0123456789"[Tcel/10];
    Str[16] = "0123456789"[Tcel%10];
    Str[18] = "0123456789"[Tdrob];
    Результат получается строка "Температура = +28.3 C"
    Всегда так строки выводил. Работает очень быстро, памяти надо только на саму строку.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      а также на три строки по 10 байт =)

    • @eng283
      @eng283 3 года назад

      @@ArduNotes Если таких строк много, то ее можно вынести константой 10 байт. Кста 16 байт стокой можно 16тиричные числа выводить)

    • @ArduNotes
      @ArduNotes  3 года назад

      слышал про индусский код? Вот тут можно почитать lurkmore.to/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D0%B4
      По сабжу - единичная цифра переводится в символ прибавлением кода символа 0, то есть например символ цифры 5 можно получить как 5 + '0'. А не вот этот трэш что выше))))

    • @eng283
      @eng283 3 года назад

      @@ArduNotes Спасибо. Как я раньше не догадался, знал же что символ заканчивается /0
      Str[15] = Tcel/10+'/0';
      Str[16] = Tcel%10+'/0';
      Str[18] = Tdrob+'/0';
      Вот так все работает)

  • @user-hd7hq4lf4y
    @user-hd7hq4lf4y 3 года назад

    С ходу лайк. Все думал заняться разбором работы со строками, да как обычно то работа, то домашнее хозяйство ... а тут как раз Гайвер.... Полезно иногда захаживать на "тюбик"

  • @dmitryefimkin6550
    @dmitryefimkin6550 Год назад +1

    Круто. А как быть с данными падающими с UART?

  • @joinmods556
    @joinmods556 3 года назад +1

    Гайвер у меня есть для тебя интересная задача.
    Вот допустим у тебя есть дачик и ты его читаешь в виде float (а точность тебе важна) и надо через шины данных i2c, spi или через nRF передать другому устройству без потери точности, но там только передается unsigned byte или его массив. Как можно это релизовать? (да та еще извращения, но интересно увидеть задумки)

    • @alexkart9239
      @alexkart9239 3 года назад +2

      Это не "интересная задача", это типичная проверка на знание фундаментальных основ программирования. Такие "задачки" нередко используют, чтобы отсеять гo%нокoдеров на собеседованиях. В 32х-разрядной системе, массив из 4х штук uchar эквивалентен одному float. Можно легко распилить float на байты, при помощи битового сдвига:
      float sens_data=2.345678;
      unsigned char trans_data[4];
      trans_data[0]=*((unsigned int *)&sens_data);
      trans_data[1]=*((unsigned int *)&sens_data)>>8;
      trans_data[2]=*((unsigned int *)&sens_data)>>16;
      trans_data[3]=*((unsigned int *)&sens_data)>>24;
      ..затем передать, и точно также потом скукожить обратно на стороне получателя.

    • @rematender4269
      @rematender4269 3 года назад

      @@alexkart9239 Спасибо за разбор!

  • @MimakaGamleT
    @MimakaGamleT 3 года назад

    Ухх, от души)

  • @absoriann
    @absoriann 3 года назад +1

    2:16 очепятка

  • @energy_of_nature
    @energy_of_nature Год назад

    Хорошее видео!
    Но подскажите почему mString и описание и реализация в одном заголовочном файле?
    Пробовал свои создавать в cpp не работают, а в заголовочном реализация работает.
    Благодарю!
    👍

  • @user-tj4ly7je7w
    @user-tj4ly7je7w 3 года назад +6

    Ну что, мужики, учимся работать со стрингами

  • @Werbard
    @Werbard 2 года назад +1

    2:15 "НЕУОБНО" получилось )

  • @neonbrickchannel2136
    @neonbrickchannel2136 3 года назад

    Алекс Гайвер: там короче все символы в одной цепочке хранятся, и надо короче к ним обращаться как к номерам и т.п.
    Я, который пришел из web: ...что?...
    Короче, Espruino - мой вариант)))

  • @user-oh4pf7is3p
    @user-oh4pf7is3p 3 года назад +1

    Доброго времени суток , немогли бы вы заделать проект "Аквариумный контролер " у меня есть аквариум, и управлять большим аквариумом, и следить постоянно за ним очень сложно а в ардуино я не очень понимаю. Спасибо
    Что должно быть в контролере:
    Таймеры
    Экран управления
    Желатель дозатор удобрения
    Авто долив воды
    Расвет- закат
    Если возможно WiFi управление
    Автоматическое включение охлаждения

    • @MrYbs-ie1jj
      @MrYbs-ie1jj Год назад

      Контроллер теплицы не устраивает?

  • @user-ym4hc8ly4h
    @user-ym4hc8ly4h 2 месяца назад

    0:34 хочу купить!)

  • @MrBondarrr
    @MrBondarrr 3 года назад

    Во млин и в нашей сфере пошел C++, ну как же успеть за всем)

    • @user-wm4cs1us2q
      @user-wm4cs1us2q 2 года назад

      Работа в ардуино это и есть работа с кодом С++

  • @nananight8473
    @nananight8473 3 года назад +1

    Здравствуйте! Нужен желательно быстрый ответ. Я работаю в программе ардуино. Проблема состоит в том, что бизер играет тогда, когда датчик линии находится над белой поверхностью. Как сделать так, чтоб бизер играл тогда, когда датчик линии находится над черной поверхностью? Заранее, спасибо!

  • @CatYoutuberTV
    @CatYoutuberTV 3 года назад +6

    Скоро: GyverString
    Через 2 года: GyverInt

    • @AlexanderTheMiddle
      @AlexanderTheMiddle 3 года назад +4

      Gyverduino

    • @ArduNotes
      @ArduNotes  3 года назад +3

      на самом деле уже есть gyver float, но он не даёт особого прироста в скорости. Но имеет смысл =)

    • @Isemenuk27
      @Isemenuk27 3 года назад +5

      GyverBoolean...

    • @antonpetrusevich
      @antonpetrusevich 3 года назад

      @@ArduNotes Неужто переплюнул gcc по эффективности програмной реализации плавучки? Для Арудино больше фикс смысл имеет.

  • @AlexanderGorshkov
    @AlexanderGorshkov 3 года назад

    Время потроллить Гувера - го микропайтон)

  • @persontashik_z
    @persontashik_z Год назад

    Как int преобразовать в char?

  • @user-ng2wm3ti1o
    @user-ng2wm3ti1o 3 года назад

    Где можно найти полный список функций работы с char

    • @ArduNotes
      @ArduNotes  3 года назад

      в текстовом уроке по ссылке в описании, либо как показано в видео - в доках на avrlibs

  • @ilyamedvedev8943
    @ilyamedvedev8943 Год назад

    У меня у одного возникла сразу идея про авторизацию по логину паролю через Ардуино🤣

  • @user-wr8dl1ny8t
    @user-wr8dl1ny8t 3 года назад

    Коммент в момент четыре пять!

  • @erlingsigurdson3064
    @erlingsigurdson3064 3 года назад

    Почему на 5:19 sizeof возвращает 2? Про strlen понятно (длина строки равна 5, от 0 до 4), а про sizeof не очень.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      если массив создан во время работы программы - программа не знает его размер и возвращает размер указателя в байтах, это 2 байта в случае ардуино нано

    • @enter0prise
      @enter0prise 3 года назад

      Потому что sizeof возвращает размер аргумента в байтах. Если передан массив - возвращает его размер (размер буфера), если указатель (не важно куда указывающий) - размер типа указателя.
      Собственно, это одно из практических отличий массивов (T[]) от указателей на буферы (T*).

  • @user-oq3tv1br9r
    @user-oq3tv1br9r 3 года назад +1

    Нужна лёгкая библиотека ЕЕПРОМ для счётчика, который пишет в еепром и не делает ему износа....

    • @androidpasha
      @androidpasha 3 года назад

      Пиши просто в следующую ячейку после максимального значения. В конце eeprom пиши в первую. Это самый щадящий способ будет. Одним циклом управишься. При первом старте только обнулить весь епром нужно (если ячейка1==2). Итого два цикла.

  • @sliders116
    @sliders116 3 года назад +2

    А утечка памяти?

    • @ArduNotes
      @ArduNotes  3 года назад

      куда?

    • @olexangrstetsiuk3092
      @olexangrstetsiuk3092 3 года назад

      @@ArduNotes , наверное вопрос о : уничтожении динамических массивов, которые загрузят всю оперативку.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      уничтожаются конечно. Но при неудачном менеджменте программы можно создать жуткую дефрагментацию и п*дец

    • @olexangrstetsiuk3092
      @olexangrstetsiuk3092 3 года назад

      @@ArduNotes , ой, создай урок как не надо делать, чтобы не получить звездулину в работе МК.

  • @denial3874
    @denial3874 Год назад

    Заметки Ардуинщика: Когда будет урок по указателям, это можно сказать самая важная тема и она не раскрыта.

  • @edgarfedosov1440
    @edgarfedosov1440 3 года назад +1

    С тем объемом памяти, что в ардуинках, лучше сразу забыть о типе string.

  • @BaHeK1994
    @BaHeK1994 3 года назад

    5:18, почему на 8-ой строке sizeof вернуло 2?

    • @Al.Sy.
      @Al.Sy. 3 года назад +2

      strP - указатель на char, в строке 8 вычисляется его размер (2 байта, т.е. может адресовать до 64 килобайт).

  • @goiiia3774
    @goiiia3774 3 года назад

    Какой объём можно разово послать в монитор порта ?? Есть одна идея, но боюсь упереться в какое нибудь ограничение.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      в целом ограничений нет, если отправная строка уже сформирована

    • @goiiia3774
      @goiiia3774 3 года назад

      @@ArduNotes , мм, это очень хорошо )

  • @Gartenzwerg
    @Gartenzwerg 3 года назад

    На 5:52 не понял, зачем "str+" при инициализации переменной. И это гарантированно, что после объявления переменная пустая?

    • @ArduNotes
      @ArduNotes  3 года назад +1

      "str+" чтобы показать, как работает указатель и как сдвигается индекс. Переменные при создании могут быть не пустые, поэтому нужно самому инициализировать, о чём дальше рассказано

    • @Gartenzwerg
      @Gartenzwerg 3 года назад

      @@ArduNotes понятно, я так и думал.

  • @Lesperi
    @Lesperi 3 года назад

    А код на теплицу перепишешь? Воздаю должное это самый крутой и полезный проект. Безмерно благодарен за проект "теплица".

    • @MAD_ALEX
      @MAD_ALEX 3 года назад

      Там нечего переписывать

  • @user-se3bw8ut8e
    @user-se3bw8ut8e 3 года назад

    Здравствуйте!
    А не хотите сделать уроки по Flprog? По созданию пользовательских блоков.

    • @ArduNotes
      @ArduNotes  3 года назад +1

      здравствуйте, нет

    • @kalobyte
      @kalobyte 3 года назад

      про это есть у самого автора флпрог и там ничего сложного как раз нет

  • @user-lg2wd1en6h
    @user-lg2wd1en6h 3 года назад +2

    Если mString либа действительно резкая как понос, то я в деле

  • @user-fr6rq8sk3z
    @user-fr6rq8sk3z 3 года назад

    Чтобы не заниматься всеми этими сложениями строк и поисками индексов символов человечество придумало замечательные функции sprinf и scanf.

    • @ArduNotes
      @ArduNotes  3 года назад

      ага, только вот придуманы они для десктопа, потому что отжирает эта замечательная функция около 2.5кб Flash, а форматирование простейшей строки занимает целую вечность даже по меркам String. Не для микроконтроллеров этот индийский код используется

    • @user-fr6rq8sk3z
      @user-fr6rq8sk3z 3 года назад

      @@ArduNotesЧто то является частью libc, что другое и индуским кодом это можно называть с большой натяжкой. А что касаемо скорости, то как только речь заходит о формировании строк для дальнейшего вывода (в файл на sd карту к примеру), то тут время затраченное на форматирование строки просто меркнет по сравнению со скоростью работы IO операций, а вот удобочитаемости добавляет сушественно.

  • @fakeesp1
    @fakeesp1 3 года назад

    Го урок по твоей библиотеке для тг

  • @user-cl6hk8tt6p
    @user-cl6hk8tt6p 3 года назад

    Уважаемый автор видео,как можно с вами связаться?

    • @ArduNotes
      @ArduNotes  3 года назад

      под каждым видео почта указана

  • @lazyNavel
    @lazyNavel 3 года назад

    Очень интересно но ничего не понятно😅👍 Как говорил мой препод в далёком 2010 читай документацию пиши код, а там разберемся 😂😂😂

  • @opi03
    @opi03 3 года назад +1

    Сложно, скучно, но необходимо

  • @absoriann
    @absoriann 3 года назад

    Чем отличается String из ардуино и string в c++?

    • @ArduNotes
      @ArduNotes  3 года назад +2

      реализацией и синтаксисом

    • @alexkart9239
      @alexkart9239 3 года назад

      C++ объектно-ориентирован, т.е. всё, что вы найдёте в std:: является классами, от которых можно производить и наследовать. К примеру, я могу, в теории, создать дочерний класс от std::string и добавить то, чего там, по моему мнению, не хватает. Вот так
      class ololoString : std::string
      {
      public:
      void blowjob();
      };
      Теперь я могу создавать инстансы нового класса ololoString, которые умеют делать blowjob.

  • @user-bh2ot5ks8f
    @user-bh2ot5ks8f 3 года назад

    Хех, Алекс по итогу свои стринги сделал 🤣

  • @vovanikotin
    @vovanikotin 3 года назад

    Как 8 байтный double от GPS антенки переделать в ардуиновский 4 байтный float без потери точности в 6 и 7 знаке?

    • @ArduNotes
      @ArduNotes  3 года назад

      никак. Хранить в каком нибудь своём составном типе данных, например байт на целые и лонг на дробные

    • @vovanikotin
      @vovanikotin 3 года назад +1

      @@ArduNotes ок, а как тогда дробную часть корректно засунуть в лонг?
      Конкретный пример, 44.00000012
      12 запишется в лонг как 12, но нули перед 12 пропадут, и их никак не получается учесть.

    • @GoodVrGames
      @GoodVrGames 3 года назад

      @@vovanikotin А зачем плодить переменные + код, если можно использовать ардуиновский double?

    • @vovanikotin
      @vovanikotin 3 года назад

      @@GoodVrGames avr-овские чипы не поддерживают double, double компилятором превращается во float, а все что после 6-7 знака превращается в рандом - из-за этого есть проблемы с координатами gps.

    • @ArduNotes
      @ArduNotes  3 года назад

      ардуиновский double урезан до 4 бит

  • @iAlexTube
    @iAlexTube 3 года назад +1

    2:13 неуйобно

  • @nemoderator2043
    @nemoderator2043 3 года назад

    Хелоу

  • @user-il2eu7sy6p
    @user-il2eu7sy6p 3 года назад

    У тебя ест отпуск? А где ты работаешь?

  • @prostojproekt
    @prostojproekt 3 года назад

    2:15 явно устал (неуобно)

  • @dj2080s
    @dj2080s 3 года назад

    2:12 не неуобно а неудобно

  • @technotroll-pro
    @technotroll-pro 3 года назад

    На esp8266 (если кодить в среде ардуино) String гарантировано приносит проблемы в половине случаев

    • @ArduNotes
      @ArduNotes  3 года назад

      да? А в каких именно? Я не сталкивался, так как стараюсь делать всю обработку строковыми алгоритмами

    • @technotroll-pro
      @technotroll-pro 3 года назад

      @Заметки Ардуинщика wemos, nodemcu

    • @technotroll-pro
      @technotroll-pro 3 года назад

      При чтении ответа с сервера по http

    • @ArduNotes
      @ArduNotes  3 года назад

      до 15 тысяч символов он может принять, и сам возвращает стринг. Я много с таким работал, ничего не ломалось

    • @technotroll-pro
      @technotroll-pro 3 года назад

      @Заметки Ардуинщика дело не в самом стринге, а в том, что он подвешивает программу причём это как правило сразу не видно. Код нормально заводится. Все работает, но периодами плата подвисает. Вылечилось только чистым Си

  • @Moki1930
    @Moki1930 3 года назад +1

    Ну и какого хрена ютуб? Где уведомление?

    • @v61kz
      @v61kz 3 года назад +1

      Хаха, завтра придёт🤣🤣🤣💪

  • @pochka7195
    @pochka7195 3 года назад

    У нас новое слово в видео появилось: неуобно

  • @DART2WADER
    @DART2WADER 3 года назад

    Не ожидал увидеть шаблоны, тогда может github.com/hanickadot/compile-time-regular-expressions на атмеге запустить.

    • @ArduNotes
      @ArduNotes  3 года назад

      тяжеловато для МК. Есть облегченная либа regexp спецом под аврки

  • @int_DrBass
    @int_DrBass 3 года назад

    а как же сишные sprinf и sscanf? проще и поддерживают создание строки с форматированием, а itoa и atoi надо крайне осторожно использовать
    а вообще мне не понятно почему в крайне ограниченных ресурсах сделали плюсы а не чистый си, который более компактый, пусть и более сложный

    • @ArduNotes
      @ArduNotes  3 года назад +2

      никто не делал плюсы, писать можно и на с и на cpp, компилятор разберётся. По sprintf - тема для отдельного урока. Ну и к слову sprintf гораздо тяжелее и медленнее даже чем String, на МК использовать это прям самоубийство

    • @enter0prise
      @enter0prise 3 года назад

      То есть размер бутлоадера - это ОК, а плюсы помешали?) Исключения отключены, rtti отключен, стандартной библиотеки нет. Все во благо минимального размера хексов. Зато от плюсов есть шаблоны, constexpr, лямбды и в конце-концов классы с нормальным RAII. Вопрос в том, почему ардуинщики этими благами цивилизации практически не пользуются?...

    • @int_DrBass
      @int_DrBass 3 года назад +1

      @@enter0prise лично мне чистый си ближе чем плюсы. лябмдами и rall не пользуюсь даже на компе, так как нафиг это надо

    • @ArduNotes
      @ArduNotes  3 года назад

      потому что ардуинщики - не сеньоры C++, а полные новички в программировании?

    • @enter0prise
      @enter0prise 3 года назад

      @@int_DrBass я к тому, что перейдя С-компилятор критически ничего выиграть не получится, а потерять - запросто.

  • @TheShura2
    @TheShura2 2 года назад

    После фразы "а на самом деле никаких массивов нет" я зависаю и пергружаюсь

  • @oboltus6757
    @oboltus6757 3 года назад

    2:13 неуобно