XD
вот то что у меня сейчас
если 83 строку заменить на malloc(_countLeds * 3) то первый пиксель всегда белый даже если вызвать сетпиксель и задать ему другой цвет
XD
что у меня вообще никак не укладывается в голове с учетом того что с вариантом с calloc все работает отлично
нету ,да
Ну а вопрос в чем тогда?
Вон колодка по центру платы из 4 пинов. Скорее всего это 3.3/gnd/tx/rx
Либо припаяйся сам к чипу и шей его
scliva
Ну а вопрос в чем тогда?
как сбросить непонятно,перепрошить то всегда успеть можно
scliva
Что сбросить то?
часы же должны по вайфай синхронизироваться точки нет,к роутеру не подключены
часы же должны по вайфай синхронизироваться точки нет,к роутеру не подключены
Ну почитай документацию наверняка при старте удержать какую либо из кнопок
XD
Если с calloc он хоть иногда зажигается?
да, все так как и должно быть
да вот в том т ои дело,,что на али исчезли они
Ну просто удержи тупо одну или две кнопки и включай их. Да никуда они не исчезли, уверен что еще куча продавцов продают их. В конце концов напиши тому у кого покупал
что у меня вообще никак не укладывается в голове с учетом того что с вариантом с calloc все работает отлично
Как вариант сделай дамп буффера перед отправкой и погляди в чем различие
Ну сними батарейку и попробуй держать тоже какие либо из кнопок. Либо просто сними батарейку да вставь позже
Может он по сбросу RTC поймет что надо начать все заново
Алексей
да, все так как и должно быть
uint8_t green; green & 0xFF; //смысл этого для меня загадка Посмотри первые и последние 3 байта в массиве.
scliva
Может он по сбросу RTC поймет что надо начать все заново
не,ладно,придется шиться,в теории должна была точка доступа появиться,Но ее нету
не,ладно,придется шиться,в теории должна была точка доступа появиться,Но ее нету
Я более чем уверен что прошивка предусматривает режим сброса.
scliva
есть настройки непонятные мне dd df bp Ac
Я бы просто сдампил в лог содержимое буфера с разными вариантами
Алексей
И будет у uint8_t - 0xFF это максимальное значение. Смысла в этом нет. Хотя компилятор это должен убрать.
Алексей
у calloc первый аргумент количество элементов, второе их размер. по идее он просто должен выделить 1*_countLeds * 3, но какова реальная реализация этого, я не знаю.
XD
uint8_t green; green & 0xFF; //смысл этого для меня загадка Посмотри первые и последние 3 байта в массиве.
вроде все нормально, установил везде в 1 на синий здесь так и есть, сейчас заменю на маллок и проверю id: value
scliva
Ну почитай документацию наверняка при старте удержать какую либо из кнопок
https://www.elecbee.com/en-32975-1.2-Inch-Digital-Tube-with-Temperature-and-Time-Display-Alarm-Clocks-Module-Supports-WIFI-Network-Automatic-Time-Synchronization-5V-DC нашел,но про сброс и вайфай ничего и нет :))) как будто бы там чип просто так :) есть точно такая же модель без чипа esp :)) Часы могут синхронизироваться только с китайским сетевым временем сервера, поэтому будет отображать только текущее время в Китае.
Anton
я не могу даже её себе представить
Алексей
я ни разу не видел разницы
её и с malloc не должно быть
Anton
я с лентой мучиться не стал. обновил есп-идф до 4.4, там уже есть драйвер для ws2813b, при создании проекта выбрал "сделать из примера" и получил готовый рабочий код, который подогнал потом под себя
Алексей
и по идее там выделается через тот же malloc и обнуляется. Но просто попробовать, чтобы уж наверняка.
Anton
и по идее там выделается через тот же malloc и обнуляется. Но просто попробовать, чтобы уж наверняка.
на серьёзных осях бывают варианты, но на мк всё примитивно как мы это себе и представляем: нашли в куче свободное место, застолбили и обнулили
Anton
я видел авровский менеджер кучи -- примитевнее некуда, там даже не пытаются микрооптимизации делать
Алексей
Так AVR - это проще некуда.
Anton
Так AVR - это проще некуда.
ну я не только авровскую видел, это вот что из последнего помню
Алексей
А разве в китае не несколько часовых поясов?
Я слышал, что один. Но работают в разное время :)
Алексей
короче с маллок в буфере тоже все норм
Скорее всего баги в rmt_write_sample
XD
короче с маллок в буфере тоже все норм
Разница только визуальная , забавно однако
Anton
есп32 менеджер кучи сложнее изза того что там разные пулы памяти. что-то умеет дма, что то нет и пр
scliva
А разве в китае не несколько часовых поясов?
нет,вроде нет,но с нашим же не совпадает: ) ну неужели нету сброса:(
scliva
Можно в полночь выкл и вкл 🧠
я про сброс вайф фай%)
Anton
не знаю откуда у тебя маллок, стандартный пример из есп-идф выделяет буфер сам у себя внутри:https://github.com/espressif/esp-idf/blob/release/v4.4/examples/peripherals/rmt/led_strip/main/led_strip_main.c
XD
вот то что у меня сейчас
Вот мой вариант, здесь тот же пример но выкинул лишнее, так сказать подготовил чтобы обернуть в "матрицу" а не ленту
А разве в китае не несколько часовых поясов?
Нет. Стандартное пекинское время. Они хотели поделить но не поделили
Anton
// install ws2812 driver led_strip_config_t strip_config = LED_STRIP_DEFAULT_CONFIG(CONFIG_EXAMPLE_STRIP_LED_NUMBER, (led_strip_dev_t)config.channel); led_strip_t *strip = led_strip_new_rmt_ws2812(&strip_config); if (!strip) { ESP_LOGE(TAG, "install WS2812 driver failed"); } // Clear LED strip (turn off all LEDs) ESP_ERROR_CHECK(strip->clear(strip, 100));
Anton
и всё, память выделена, очищена, strip->set_pixel(strip, j, red, green, blue); значения записаны
Anton
CONFIG_EXAMPLE_STRIP_LED_NUMBER -- дебильный несколько пример конфигурации, но для примеров простительно
ok-home
Хай. У меня тут назрел вапрос, обосновнный скорее просто инетересом но если кто-то сможет пояснить буду благодарен, вообщем я делаю управление адресной лентой, нашел пример с esp-idf протестил что все работает, переписал весь код под себя зпустил и как выяснилось самый первый пиксель ленты стал всегда светить белым, начал построчно сверять свой код с кодом с примера и нашел причину, в коде с примера для буфера используется выделение памяти через calloc а я когда переписывал то сделал через malloc и соответственно когда в своем коде так же заменил на calloc все стало работать как нужно, изучил доку по этим двум функциям но так особо ничего и не понял, ну именно почему могло быть такое разное поведение.. может кто сможет обяснить
если говорим про esp idf - то в первоисточнике void* unity_calloc(size_t num, size_t size) { void* mem = unity_malloc(num * size); if (mem == NULL) return NULL; memset(mem, 0, num * size); return mem; }
Странная фигня получается
Просто ради интереса выведи содержимое буфера с обоими вариантами в юарт и все поймешь
Че гадать то
ok-home
Странная фигня получается
ну уже тогда если правите то правьте как положено uint16_t _countLeds; - вроде как это определение того чего выделяете, странно что оно вообще работает ))
scliva
Подпайвайся к пинам и прошивай
надо еще прошивку подобрать подобную,к 4 дисплеям сразу,там в родной приятные фишки ...
Мне кажется сброс nvram решит твою проблему
scliva
Ну сделай дамп родной прошивки.
вот кстати ни разу не делал дампы
это мне? но как?:)
Найти в прошивке где хранятся настройки вифи и прочее и заполнить эту хуйню нулями
А он подключается к твоей вифи сети?