Форум РадиоКот https://radiokot.ru/forum/ |
|
Плейер световых эффектов - помогите стать лучше https://radiokot.ru/forum/viewtopic.php?f=57&t=159702 |
Страница 36 из 44 |
Автор: | Dimon456 [ Пт фев 28, 2020 14:35:00 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector писал(а): 1,235us на 1 бит, 1,235 * 32 = 39,52us и теперь это все умножим на 254 светика 39,52 * 254 = 10038 и + сигнал сброса 50us = 10088us 1.25 * 24 = 30. Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит". Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание". Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно. |
Автор: | ARV [ Пт фев 28, 2020 14:45:00 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Dimon456 писал(а): Попробовал я ваш ШИМ с этого сайта, не нравится мне я прочитал в комментахЦитата: по 48 байт на каждый диод ленты и выпал в осадок...
|
Автор: | Reflector [ Пт фев 28, 2020 16:31:35 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
я прочитал в комментах Цитата: по 48 байт на каждый диод ленты и выпал в осадок...Берем байт цвета, каждый бит нужно преобразовать в 8-ми битное значение которое потом DMA при копировании дополнит нулем. Для этого цвет используем в качестве индекса в массиве, получаем адрес во флеше и два раза копируем по 32 бита, затем повторяем копирование для двух оставшихся цветов. Все, 24 байта в буфере, потрачено несколько десятков тактов, а передаваться при помощи DMA они будут 30 * (48...128) тактов в случае применение дешевых мк... Двух таких буферов вполне достаточно(хватит и 2*8 байт), никто не заставляет сразу заполнять буфер для 254 диодов. Цитата: Попробовал я ваш ШИМ с этого сайта, не нравится мне, светодиод имеет какое-то "дрожание", то есть не просто горит, а "дрожит". Накидал тестовый вариант для G0. 128 MHz, ничего не дрожит. СпойлерКод: uint8_t buf[9] = { 51, 109, 109, 51, 109, 109, 51, 51, 0 }; PinA<6, AF1>::mode<PinMode::AF_PushPull>(); Dma1Ch1 ch1; ch1.setPeriphRequest(DmaReq::Tim3_CH1); ch1.initMemToPeriph(buf, DmaSrc::_8b_Inc, &TIM3->CCR1, DmaDst::_16b, 9); Timer3 tim3; tim3.init(0, 128 * 1.25 - 1, TimMode::Upcounter, true); tim3.capCom1.initOutput(1, TimOutputMode::PwmMode1, CcrPreload::On); tim3.enableDmaRequests<TimDmaReq::CapCom1>(); ch1.enable(); tim3.enable(); |
Автор: | Dimon456 [ Пт фев 28, 2020 17:50:09 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
ARV писал(а): я прочитал в комментах Да причем тут это.Цитата: по 48 байт на каждый диод ленты и выпал в осадок...Reflector писал(а): Накидал тестовый вариант для G0. 128 MHz, ничего не дрожит. И сколь ценник этого чуда? 18$ учитывая что высылают 5 штук.И да, там на сайте 144МГц упоминается. Давайте уж тогда на ESP перейдем или одноплатный мини компьютер. Это что Код: AF1>::mode класс? Сколь оперативной памяти жрет?Reflector писал(а): F100 все равно ставить нет смысла Ни кто и ставить не будет, будет F030.И что вы, все, уперлись в эти 10мс? 32МГц выше 200 светиков перенастроить таймер на 15мс. CNT=30 CNT=60 CNT=160 CNT=200 CNT=254 |
Автор: | Reflector [ Пт фев 28, 2020 18:40:45 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
И сколь ценник этого чуда? 18$ учитывая что высылают 5 штук. Цена в данном случае не важна, таймеры и DMA у G0/F0/F1 практически идентичны. Проверил на том что было под рукой. Цитата: И да, там на сайте 144МГц упоминается. От 128 MHz тактировался таймер и сам мк, хотя для таймера можно частоту еще вдвое поднять, если выдержит. Цитата: Это что Код: AF1>::mode класс? Сколь оперативной памяти жрет?Там все на классах, класс пина, DMA, таймера, все три не потребляют ОЗУ вообще, по крайней мере с включенной оптимизацией. Цитата: И что вы, все, уперлись в эти 10мс? 32МГц выше 200 светиков перенастроить таймер на 15мс. Железо позволяет за 10 ms обновлять множество каналов по 300 диодов на каждом, а дальше уже кто из него сколько выжмет |
Автор: | Dimon456 [ Пт фев 28, 2020 21:13:00 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector писал(а): От 128 MHz тактировался таймер и сам мк, хотя для таймера можно частоту еще вдвое поднять, если выдержит. Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер.Плиз, от 32МГц проверьте или того лучше от 24МГц. Dimon456 писал(а): Количество светиков влияет на это "дрожание", чем меньше светиков тем меньше заметно это "дрожание". Частота контроллера, ну не знаю, до 48МГц разгонял, кажется "дрожание" меньше заметно. Dimon456 писал(а): И да, там на сайте 144МГц упоминается.
|
Автор: | Reflector [ Пт фев 28, 2020 21:57:56 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Я об этом и говорю, надо на ESP переходить или на одноплатный мини компьютер. G0 - это бюджетные мк, официально стоят как F0, просто пока китайцы их не продают в объемах предполагающих низкие цены Цитата: Плиз, от 32МГц проверьте или того лучше от 24МГц. Что должно поменяться? При 32MHz в периоде шима 40 тактов, ровно 0.4 us не получается, будет небольшая погрешность, 12.8 тактов придется округлить до 13, при этом чем больше частота, тем меньше погрешность. К DMA можно прикрутить и SPI, но там делители 2/4/8..., дополнительно на F0 можно менять количество передаваемых бит, что позволяет в некоторых случаях получать очень схожие результаты, но SPI один и он уже занят, а таймеров шесть и на большей части ног есть выход шима. К тому же если лента не висит на SPI, то можно моргать и одновременно читать с SD, сделав загрузку новых скриптов незаметной. |
Автор: | Dimon456 [ Сб фев 29, 2020 08:19:13 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector, красиво описываете, но как избавиться от "дрожания"? Может кондеры повесит на каждый светодиод? Ладно, провел оптимизацию кода |
Автор: | Reflector [ Сб фев 29, 2020 10:55:11 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
как избавиться от "дрожания"? Для начала берется ЛА и смотрится что с генерируемым сигналом не так. |
Автор: | Dimon456 [ Сб фев 29, 2020 16:19:34 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector писал(а): то можно моргать и одновременно читать с SD, сделав загрузку новых скриптов незаметной. Давайте начнем с этого пункта.Это вам не WAV поток. Большинство скриптов занимает меньше 512 байт. Вот тот скрипт, который у меня на видео СпойлерКод: CLR RPC PF=0A REV RPT RPC V0=TP RPT PM=V0 WT=02 LV0 INF Вы понятия не имеете как вот это СпойлерКод: uint16_t seek; //!< смещение uint16_t next; //!< позиция файла для следующего чтения uint16_t readed; //!< размер считанного блока char *pos; //!< указатель на текущую анализируемую позицию В этом скрипте плеер может крутится пока не закончился отведенное время на зацикленный скрипт Код: uint16_t run_limit; //!< длительность исполнения зацикленного скрипта За чем следующий читать? Вопрос куда читать? В какой буфер? И для чего?Когда скрипт закончится или отведенное время будем читать следующий. На это уходит какие-то 10-20мс. 512байт * 8 = 4096 бит на скорости SPI 8.000.000 Бит в 1 секунду. Вы что смеетесь? Reflector писал(а): К тому же если лента не висит на SPI Теперь этот вопрос разберем.Вывод на ленту происходит по команде скрипта Код: PNT пока вывод на ленту не закончится не зачем менять "цветовое состояние" какого либо светодиода.WT Все равно придется ждать окончания вывода на ленту. Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги? Все кто этот плеер сделал даже и не обратили внимание что тайминги не соответствуют. Даже Serzh2000 с его WS2811 понятия не имеет что не попадает в эти 10мс. |
Автор: | Reflector [ Сб фев 29, 2020 17:48:26 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Dimon456, в теме жаловаллись, что при смене эффектов может все подвисать на пол секунды, потому я и написал, что перевод обновления ленты на ШИМ среди прочего может помочь данной проблемы избежать. Естественно поскольку изначально все писалось без учета шима и DMA, то старый подход не сработает, потому мне без надобности знать как там все реализовано. Цитата: Если и делать DMA это только чтобы уйти от SPI и перейти к ШИМу, что это даст? Сверх точные тайминги? Точные тайминги, возможность на одном таймере реализовать 4 канала, увеличить число диодов до 330 и все равно 9ms из каждых 10-ти мк просто нечего будет делать, следовательно его можно было бы чем-то дополнительно нагрузить. |
Автор: | Dimon456 [ Сб фев 29, 2020 17:54:04 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector писал(а): увеличить число диодов до 330 ARV писал(а): и концептуально нынешняя реализация интерпретатора скриптов не позволит работать с более чем 254 светодиодами.
|
Автор: | ARV [ Сб фев 29, 2020 20:19:24 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Dimon456, вы ковыряетесь с плейером из любви к искусству, а тов. Reflector в тему зашёл исключительно с целью продвижения STM32, и слово целесообразность в его лексиконе отсутствует. Не нужно обострять ситуацию, ничего хорошего из этого не выйдет. |
Автор: | Dimon456 [ Вс мар 01, 2020 13:54:54 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Reflector писал(а): увеличить число диодов до 330 и все равно 9ms из каждых 10-ти мк просто нечего будет делать То есть если я вас правильно понял, то вы выводите за 1мс все 330 светодиодов?Reflector писал(а): нужно обязательно большую часть времени проводить в цикле проверяя флаг готовности SPI Все равно придется ждать и какой-то флаг проверять.Код: PC=252525 задаем какой-то цвет rgb между WT=25 и командой PC=00FF00 должно пройти 0x25*10=370мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять?
PM=011425 карта пикселей WT=25 вывод на ленту и задержка, задержка осуществляется на XX*10 миллисекунд PC=00FF00 задаем другой цвет PM=021526 другие пиксели PNT немедленный вывод наленту |
Автор: | Reflector [ Вс мар 01, 2020 15:46:03 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
То есть если я вас правильно понял, то вы выводите за 1мс все 330 светодиодов? 330 светодиодов физически не могут обновляться за 1ms, но за 1-2ms можно выполнить скрипт и подготовить данные для DMA и пока они будут передаваться можно заниматься чем-то другим. Reflector писал(а): Все равно придется ждать и какой-то флаг проверять. Проверять придется, но в самом конце, когда все задачи уже выполнены. Цитата: между WT=25 и командой PM=021526 должно пройти 0x25*10=370мс мк будет крутиться в цикле и ничего не делать. Что вы собираетесь параллельно выполнять? Ничего не собираюсь, это что-то меняет? |
Автор: | ARV [ Вс мар 01, 2020 17:11:35 ] | ||
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше | ||
Reflector писал(а): Ничего не собираюсь, это что-то меняет? не сочтите за грубость, но не могли бы вы ничего не собираться делать в другой теме? не нужно срать в этой. неужели вам не достаточно тем про STМ32, где вы можете блистать своими знаниями в полной мере?это, кстати, и к VladislavS тоже относится. как только вам захочется поумничать на счет своего любимого конька, сразу смотрите вот в это место сайта: как только там увидите STM32 вместо AVR - вот тогда и можете изливать свои мысли, а до тех пор пусть они в ваших котелках булькают, а сюда не проливаются. договорились? прошу модераторов проследить за соблюдением порядка.
|
Автор: | ARV [ Вт апр 21, 2020 20:28:30 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Volodya_Tver писал(а): начинайте бояться я уже дрожу - особенно после того, как вы не сумели правильно упомянуть мой ник Volodya_Tver писал(а): закидаю тупыми вопросами ничего, я вполне могу закидать вас тупыми ответами - и не уверен, что победитель этой схватки предопределен вами но вообще я приятно удивлен, что мой проект все-таки находит своих почитателей... |
Автор: | Volodya_Tver [ Вт апр 21, 2020 20:40:42 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Volodya_Tver писал(а): начинайте бояться я уже дрожу - особенно после того, как Вы не сумели правильно упомянуть мой ник Я дико извиняюсь - исправил, зрение уже не то, что в молодости, даже телескопы не всегда помогают. По поводу "Схватки" - мне действительно интересно понять принцип работы скриптов, но в силу отсутствия опыта и знаний, тяжело будет сразу во все "въехать". Поэтому надеюсь и рассчитываю на Вашу помощь. |
Автор: | ARV [ Ср апр 22, 2020 03:48:24 ] |
Заголовок сообщения: | Re: Плейер световых эффектов - помогите стать лучше |
Volodya_Tver писал(а): Поэтому надеюсь и рассчитываю на Вашу помощь. нивапрос
|
Страница 36 из 44 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |