Очень плохо что библиотечные примеры выдают ошибку.
@ivanpetrov18203 күн бұрын
Может кому поможет. Заработало только после добавления вызова wifi_station_connect() в конце функции sleep. Без этого модуль не хотел после пробуждения снова подключаться к АР.
@luthor278611 күн бұрын
Слушай а ты больной на голову покупать отладчик для esp32 за 10 баксов когда сам esp32 3-5 баксов =) ?
В коде все есть! #define SCK_PIN 2 #define MISO_PIN 1 #define MOSI_PIN 0 #define CS1_PIN 3 #define CS2_PIN 5 #define CD_PIN 4 ресет экрана на питание CS1 от экрана, CS2 от флеша шрифтов
@Alexander-xl4lr22 күн бұрын
Спасибо за труды! Они очень мне помогли и продолжают помогать. Даже спустя столько лет. Вы профессионал с редким умением хорошо объяснять. Жаль мало таких. Успехов Вам!
@arduinoetc22 күн бұрын
Заходите в канал телеги, если хотите не потеряться. Ссылка под всеми последними роликами.
@Anatoliy-3D23 күн бұрын
Для ядра 8051 я розробив програмний драйвер PS2, працює, але є проблема з включенням світлодіодів на клавіатурі - не всі вдалося запалити. Виявилося, потрібні якісь особливі програмні операції для цього - але які не знайшов в інеті. Можете підказати щось по цій темі? Буду вдячним за підказку.
@Anatoliy-3D23 күн бұрын
Відео є хорошим навігатором для початківців. Жирний плюс!
@Architector120Ай бұрын
Можете сделать видео о том как настроить DMA этого микроконтроллера на роботу в режиме Circular mode (buffer)?
@arduinoetcАй бұрын
Какие-то проблемы с выставлением одного бита в регистре или одного параметра в SPL? В RM всего один абзац посвящен этому и он абсолютно самодостаточен.
@Architector120Ай бұрын
@@arduinoetc К сожалению да... Боюсь дело тут не только в одном бите... его я как раз выставить смог... а вот дальше разобраться так и не смог...
@arduinoetcАй бұрын
В ролике про генерацию синуса на CH32V003 используется циркулярный DMA и все прекрасно работает. Ищите проблемы у себя в коде или логике программы.
@sg6630Ай бұрын
На микропитоне примеры будут?
@arduinoetcАй бұрын
нет
@sg6630Ай бұрын
@@arduinoetc ок (
@sg663026 күн бұрын
@@arduinoetc нет ли у вас видео по асинхронному или паралельному програмированию есп ?
@serhio6786Ай бұрын
у меня есть проект на ESP32 c Freertos, MQTT. хотел сделать бота как резервный канал связи если брокер отвалился ( а такое бывает). насколько хорошая идея? пощупал, вроде работает, но не видел примеров с freertos. пока тестил, видимо меня забанили и перестали приходить сообщения от esp32 в бот, и мк перезагружается по таске с ботом..
@arduinoetcАй бұрын
Квоты ботов описаны в документации на Bot API. У меня два года бот каждую ночь с двух ESP32S2 шлет сообщение с данными, работает без нареканий.
@0km_Ай бұрын
Привет! А у меня вопрос, но далековато от темы. Есть CCTV-камера, которую смотрим на экране - все обычное. Реально ли запараллелиться к сигналу от камеры АЦПшкой от контроллера и для реализации, например, датчика освещения (детект включения света в темном помещении)? Вот тупо так, без декодирования видео-сигнала, просто по усредненному напряжению видео-сигнала? Мне лично код не интересен, электроника - это вопрос. Вдруг кому еще интересна такая дичь.
@hzworkzАй бұрын
интересно,спасибо, а не знаете ли что за беда может быть с ремапом :при ремапе USART можно ли использовать пины не в паре, например поменял я местами rx и tx. tx disable , и хочу пин тх использовать как кнопку, но замечаю что у меня rx теперь нормально идет и по любой из ног usart .хотя я эту вторую ногу (которая была до ремапа rx )в пинах могу вобще не инициализировать.
@user-fw6sr7wp6bАй бұрын
Сколько мА или мкА или в режиме ожидания, ну интересно
@andreasduzariev2482Ай бұрын
В режиме Run - 5-6 mA, В режиме Standby с поддержкой внешних прерываний - 0.8-0.9 mA. Как погрузить микроконтроллер в DeepSleep я так и не понял, хотя делал всë по мануал референс. Забыл уточнить, что замер проводился при внутреннем генераторе на 24 МГц.
@meg78337Ай бұрын
@@andreasduzariev2482 у меня удалось отправить в standby режим, потребление - менее 0.01мА (мультиметр меньше не видит) но, в другом проекте, где используется SPI и ADC, при отходе в сон потребление было 0.5мА. При принудительном выключении АЦП перед сном - упало до 0.2мА. Отключение SPI перед сном не снижало потребление
@tituszx1Ай бұрын
@@andreasduzariev2482 у меня в режиме обычного сна где-то 0,3-0,4 мА было. DeepSleep почему-то примерно также, только тактирование с кварца на внутренний генератор сбрасывается. Для перехода в DeepSleep нужно перед переходом в сон NVIC->SCTLR |= (1 << 2); //SLEEPDEEP выставить
@andreasduzariev248212 күн бұрын
Обновлëнная информация: ток в режиме Standby, при напряжении 3.3В и частоте 8 МГц составляет не 0.9 мА, а 85 мкА (в десять раз меньше). При этом состояние регистров и памяти сохраняется, а выход доступен через внешние прерывания и по таймеру.
@textreanimatorАй бұрын
Кто такой олень? Почему не медведь?
@rattlesnake-1972Ай бұрын
Спасибо большое! Посмотрел с удовольствием. Делал нечто похожее только с управлением на кнопках. inventorkr.blogspot.com/2021/09/how-to-make-mini-oscilloscope.html Если честно то бесполезная игрушка. 200мкС для моих целей мало, но может кому-то и пригодится. С уважением и удачи в творчестве.
@arduinoetcАй бұрын
На 20-ти рублевом CH32V003 выборка 1 мкс и отрисовка экрана через DMA.
@ruslaniriskulov2075Ай бұрын
У меня лодка с такими модулями. Нормально все работает
@bOogImOonАй бұрын
Я тоже желаю вам всё таки работать с Texas Instruments:) но я как и вы покупаю штаны, а на здачу контроллеры , ну про книги и симинары я вообще молчу , а где-то в Европе это всё просто как солнце по утрам
@oabdn8282Ай бұрын
eePORN по факту
@ArtemKAD1Ай бұрын
Минус контрольная сумма целостности, минус копия итого - 8 байт реального, что в целом на флаги хватит
@arduinoetcАй бұрын
контрольная сумма при аппаратной проверке инверсии каждого байта зачем? копия данных в той же странице флеша с атомарной записью зачем? итого 24 байта
@ArtemKAD1Ай бұрын
@@arduinoetc Для того, что-бы иметь возможность восстановить из копии при повреждении или загрузить заводское значение если там мусор(пусто) или разрушены обе копии. Атомарная запись при падающем напряжении - та еще атомарная. Если запись байта и его инверсии происходит внутри МК одновременно, то все что в лучшем случае покажет проверка, писалось ли туда хоть что-то(если изначально память не инвертирована) и пора ли выбрасывать МК в мусорку из-за физического разрушения Flash-памяти.
@arduinoetcАй бұрын
Ну удачи надеяться на две копии в ОДНОЙ странице флеша.
@VineVineyiiiАй бұрын
Удалять канал это самая тупая и не дальновидная идея. Хуже не будет, даже пользи больше если просто тупо оставить все как есть
@MaxiRPDАй бұрын
Деление и bitarray внутри обработчика прерываний - рукалицо...
@Di-poleАй бұрын
Я вот не один десяток лет в своей профдеятености связан с МК и электроникой, но первый раз слышу такую характеристику как волатильность по отношению к АЦП. Я понимаю, что есть желание показать свою экспертность в освещаемой области, но в действительности использование в своей речи сленга говорит о неопытности. С течением времени, по мере своего проффессионаного роста, вы поймёте важность точных формулировок.
@MaxiRPDАй бұрын
Это ардуинщики...
@Sergey-g4uАй бұрын
Добрый вечер . Знакомы ли вы с микроконтроллерами LKS32MC08x в нем есть все для частотников он под это заточен. Не могу найти SDK и программатор.
@arduinoetcАй бұрын
Здравствуйте. Не знаком, как и с сотнями других МК.
@user-fw6sr7wp6bАй бұрын
КИТЫ !!! Это точно
@Ар-к8хАй бұрын
здравствуйте, можете пожалуйста ответить мне, мне необходимо записывать данные с акселерометра на sd карту. Для этого использую esp32. Проблема заключается в том что пока записывается данные на sd я упускаю новые данные с акселерометра. Код писал на arduino. Если писать код в esp idf это поможет ли как повысить скорость записи на sd карту ? Можно ли допустим по dma передавать данные напрямую с акселерометра на sd по spi шине?
@arduinoetcАй бұрын
Данные пишутся же в файловую систему, а не прямо на карту, так что DMA тут не поможет (и скорее всего SPI в дурино-фреймворке для буферного обмена уже использует DMA). Начните с повышения частоты SPI при инициализации SD, читайте одним ядром, а пишите другим (если у вас ESP32 или ESP32-S3). Читайте через большой буфер частями или используйте пару буферов для чтения в один и записи из предыдущего.
@Ар-к8хАй бұрын
@ спасибо большое за информацию, обязательно попробую.Главное чтобы простоя не было когда буфер будет заполнятся из-за медленной записи на на sd))
@oabdn8282Ай бұрын
Ох, когда же программисты микроконтроллеров дойдут до отделения бизнес-логики от хардварной… ребят, попробуйте, вы будете в восторге от того, на сколько понятнее и проще станет код
@slavav2974Ай бұрын
первая строчка -> #define .... вторая строчка --> constexpr ... не проблема, но и некрасиво ... помесь быка и крокодила .... прошу прощение ....
@kulbaev_zhАй бұрын
ну и пошел я лесом😅
@mister_arbuzАй бұрын
Грибов хоть набери 😄
@iqubikАй бұрын
Удаляй прям сейчас и счастливо тебе в компании с соловьёвым
@OwnedyouАй бұрын
16:06 Недавно меня смутило что в Котлине тоже Байт это знаковая переменная.
@GrayMagellanАй бұрын
А ты чего от нас хотел? Денех?
@glorhiАй бұрын
Вроде и хорошая идея, но слать что-то нестандартизированное в эфир.. да и даже разрабатывать вне стандартов.. ну такое.
@mister_arbuzАй бұрын
Русская смекалка, что Русскому - норм, фашисту - "ну такое" 😄
@crazysovaАй бұрын
А все видео продублированы на дзене и рутубе, или придётся всё с ютуба скачать?
@romafeelcame7982Ай бұрын
Оо теперь я узнал что у вас есть телеграм. Подписался
@iqubikАй бұрын
Этот автор постоянно разочарован своей аудиторией. Что ни ролик то мы хреновые
@romafeelcame7982Ай бұрын
@@iqubik Что же делать, если это так и есть?
@VineVineyiiiАй бұрын
@@iqubik Не нагнетай, он разочарован лишь небинарными программистами😅
@romafeelcame7982Ай бұрын
:-(
@barcoolerАй бұрын
Если «кто-то» скачает ваши видео и перевыложит их на ютуб, вы же не будете против?
@arduinoetcАй бұрын
Трамп планирует отменить авторское право?
@VineVineyiiiАй бұрын
@@arduinoetcТак мы укажем авторство обезательно
@barcoolerАй бұрын
В рутубе канал не планируете удалять, продолжите выкладывать видео?
@arduinoetcАй бұрын
там до 10 тыс. рыл до моей смерти не дойдет аудитория :)
@barcoolerАй бұрын
@@arduinoetc дак мы туда теперь все релоцируемся ))
@arduinoetcАй бұрын
живых не больше полутора-двух тыс., из них некоторые турецкоподданные :)
@avechessАй бұрын
@@arduinoetc А что вы удивляетесь? На планете не больше 5% умных людей. Вы обиделись на глупость каких-то троллей и решили удалить ютуб канал или есть другая причина?
@ljuberzyАй бұрын
так ты майнер в исходниках оставил!) по теме: у эпла есть система airtag, они эту рекламу нюхают своими устройствами, и потом куда-то к себе на сервер сообщают, где какую сигнатуру унюхали. в итоге получается некий краудфандинговый трекинг. умные люди пошли дальше, придумали open haystack, и создали прошивки для nrf и для esp под это дело. паразитируют на эпловской инфраструктуре) а отдельные типы пошли еще еще дальше: как я понял, эпл там в целях конфиденциальности или еще чего ключи меняет в рекламных пакетах, так один чувак нагенерировал этих ключей много, прикрутил свой девайс к почтовому ящику, и этот девайс теперь через айфоны соседей оповещает его нахаляву о поступлении новой почты..
@barcoolerАй бұрын
Немного не понял как оно оповещает о почте. Аппол вроде для поиска устройств эту инфраструктуру использует.
@ljuberzyАй бұрын
@@barcooler ну девайс слушает оптопару или типа того. как только нужно подать сигнал (принесли газету или письмо) - девайс меняет ключ (похоже, там их можно нагенерировать много и подобрать из них такие, чтоб зашифровать полбайта), и этот ключ потом приходит в оповещении, остается только расшифровать.
@mister_arbuzАй бұрын
Про почтовые ящики... Эту идею у меня зарубили все, кто только мог лет 10-15 назад, Все говорили "Да кому эти почтовые ящики нужны, они скоро уйдут в прошлое". Прошло около 15 лет, а ящики как устанавливали в новостройки так и продолжают устанавливать, и скорее всего почтовые ящики будут еще не одно 10-тилетие. А ведь мог бы получиться хороший IT-бизнес на почтовых ящиках, ибо их миллионы, а это значит миллионы потенциальных клиентов. Идею не патентовал, берите да делайте бизнес, если у вас получится, будет только круто! Тем более, что сейчас в каждом доме по несколько Интернет-провайдеров, можно коллаборироваться с ними, обеспечив систему каналом связи. У абонентов мобильное приложение, там они либо подписываются на услугу (на неделю/месяц/полгода/год) либо покупают ее полностью (и всякие доп. услуги), в этом же моб. приложении всякая реклама приносящая доход. Короче, сейчас, с нынешними технологиями эта бизнес-модель выглядит более обнадёживающей, чем 10-15 лет назад. Как "детектировать" корреспонденцию в ящике это уже дело техники, можно по простому, а можно и всякое распознавание, кому, как заблагорассудится. Возможно, благодаря такому бизнесу, почтовые ящики, со временем, превратились бы во что-то большее, чем просто почтовые ящики для газет/квитанций(и спама, куда ж без него).
@zcbesabaАй бұрын
Для работы с байтовыми потоками на java есть либа ByteBuf. Запрос в чат гпт: java. bytebuf lib. ```cpp struct payload { uint8_t len; uint8_t type; uint16_t sign; int16_t temp; uint16_t hum; uint16_t press; uint16_t co2; uint16_t pms[9]; } ``` Write java code that converts this struct (that received as byte array) to java object where all fields have int type. Java code placeholder: ```java public class Payload { public final int len; ... Payload(byte) {...} } ``` И он вернул следующий код, не проверял но выглядит многословно но очень даже норм: import java.nio.ByteBuffer; import java.nio.ByteOrder; public class Payload { public final int len; // uint8_t to int public final int type; // uint8_t to int public final int sign; // uint16_t to int public final int temp; // int16_t to int public final int hum; // uint16_t to int public final int press; // uint16_t to int public final int co2; // uint16_t to int public final int[] pms; // uint16_t[9] to int[] public Payload(byte[] data) { if (data.length < 22) { // Minimum expected size throw new IllegalArgumentException("Invalid payload size"); } ByteBuffer buffer = ByteBuffer.wrap(data).order(ByteOrder.LITTLE_ENDIAN); // Assuming little-endian as per many embedded systems this.len = Byte.toUnsignedInt(buffer.get()); // uint8_t this.type = Byte.toUnsignedInt(buffer.get()); // uint8_t this.sign = Short.toUnsignedInt(buffer.getShort()); // uint16_t this.temp = buffer.getShort(); // int16_t this.hum = Short.toUnsignedInt(buffer.getShort()); // uint16_t this.press = Short.toUnsignedInt(buffer.getShort()); // uint16_t this.co2 = Short.toUnsignedInt(buffer.getShort()); // uint16_t this.pms = new int[9]; for (int i = 0; i < 9; i++) { this.pms[i] = Short.toUnsignedInt(buffer.getShort()); // uint16_t } } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("Payload { ") .append("len=").append(len) .append(", type=").append(type) .append(", sign=").append(sign) .append(", temp=").append(temp) .append(", hum=").append(hum) .append(", press=").append(press) .append(", co2=").append(co2) .append(", pms=").append(java.util.Arrays.toString(pms)) .append(" }"); return sb.toString(); } // Test main method public static void main(String[] args) { // Example byte array (fill with actual data) byte[] payloadBytes = { 10, 1, // len, type 0x34, 0x12, // sign (0x1234) (byte) 0xFE, (byte) 0xFF, // temp (-2) 0x56, 0x34, // hum (0x3456) 0x78, 0x56, // press (0x5678) 0x9A, 0x78, // co2 (0x789A) // PMS data (9x uint16_t) 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, 0x00, 0x09, 0x00 }; Payload payload = new Payload(payloadBytes); System.out.println(payload); } }
@mister_arbuzАй бұрын
За Android отдельное спасибо, моя тема. Только жаль, что на Java, года 3 назад ушел с неё на Kotlin + Jetpack Compose
@ciklomatАй бұрын
Может не нужно ни чего удалять ?
@user-fw6sr7wp6bАй бұрын
Ну вы к нам заходите, если что. :) в телеграммах фигамах, и даже в ОК всё ровно один хрен заставят, Обкатав на блогерах ютуберах . У них загребущее одного в беде не оставят, ещё за собой попросят приводи
@PunctRuАй бұрын
Повторяю по инструкции, получаю такое. Беглый поиск внятного результата не дал. Warn : No symbols for FreeRTOS! Info : [esp32c3] Found 8 triggers Error: Failed to get flash maps (4294967295)! Warn : Failed to get flash mappings (-4)!
@arduinoetcАй бұрын
По отладке на C3 есть свежий ролик на канале
@andreasduzariev2482Ай бұрын
А будет ли ролик по прерываниям? Настолькл мало информации по таймерам, ватчдогам, аппаратным прерываниям, что приходится ковырять чужие прошивки в поисках рабочего кода.
@arduinoetcАй бұрын
Вся информация есть в RM и примерах SDK.
@andreasduzariev2482Ай бұрын
@alexmorozov73 , верно. Я своим коллегам тоже всегда говорю: "Читайте инструкцию". Но так как я хочу, чтобы мои коллеги сделали всë быстро и правильно, а не тратили день на чтение и ещë неделю на ремонт испорченных деталей, то показываю лично, как выполнять процедуру правильно. В SDK зачастую присутствуют примеры, которые не работают "из коробки", потому что расчитаны на то, что пользователь прочитал всё 34 страницы даташита, запомнил их содержимое, научился правильно пользоваться и заранее установил регистры в нужное состояние. Но таким людям совершенно не нужны ролики ютуберов, потому что они смогут справиться своими силами. Конкретно по CH32V00x мало кто полностью разобрался, в России, иначе от них бы не плевались. Конечно, я не заставляю Вас, но ведь можно сделать три полных ролика, каждый из которых будет полезен Вашему каналу.
@andreasduzariev2482Ай бұрын
@@arduinoetc , кстати, три дня разбираюсь, почему не получается настроить SysTick, а оказалось, что во-первых кто-то из программистов ядра пошутил, создав SysTicK_handler и такой же SysTicK_IRQ, а во-вторых структура SysTick имеет длину 48 бит, а не 32, как сказано в reference manual. Можно голову сломать, но так и не обнаружить проблему, которая была заложена разработчиками. Поэтому и нужен чужой опыт. Как, к примеру, Вам удалось выдерживать тайминги в осциллографе и "ШИМ-синусе"?
@arduinoetcАй бұрын
Где вы нашли структуру в SDK SysTick с 48 битами при всех 32-х битных регистрах? typedef struct { __IO uint32_t CTLR; __IO uint32_t SR; __IO uint32_t CNT; uint32_t RESERVED0; __IO uint32_t CMP; uint32_t RESERVED1; }SysTick_Type; Начинать новый проект нужно с обновления DS, RM и SDK с сайта, это ж китайцы... Весть мой код основан на RM, никаких ноу-хау в нем нет.
@ecstasy37012 ай бұрын
Здравствуйте, подскажите пожалуйста, совсем новичку!! Плата RP2040 zero Все сделал как на видео, только закинул файл с блинком В итоге звук отключения от усб и дальше ничего не происходит. Ни светодиод не горит, ни ком порт не видит. При подключении при нажатой кнопке boot, снова определяется как флешка с двумя стоковыми файлами залитыми Что я не так делаю??? Хелп
@arduinoetcАй бұрын
Блинк из стандартных примеров? Он мигает обычным светодиодом, которого нет на Zero и ничего никуда не пишет. Так что не знаю чего вы от него хотите.
@tituszx12 ай бұрын
Пока до конца не разобрался, но есть наблюдение: если при включении АЦП был выбран ADC_Channel_Vrefint, то с него нормально считывается, а если на лету поменять, то считывает напряжение откуда-то из другого места. Это всё в режиме одиночного запуска
@tituszx12 ай бұрын
Ложная тревога, при записи номера нового канала не сбросил предыдущие биты
@yurigreenchuke55722 ай бұрын
Ардуинко курит в сторонке
@hemst-roman2 ай бұрын
💪💪💪
@АндрейНик-р3к2 ай бұрын
Спасибо! Мне одному ничего не понятно? Какую книгу почитать, чтобы разобраться в программировании микроконтроллеров на С++?
@yuriysayfutdinov6652 ай бұрын
спс установил, только потребовалось скачать и установить Git-2.47.0.2-64-bit.exe