gm1957
Участник-
Постов
25 -
Зарегистрирован
-
Посещение
-
Понимание того, как программируются смещения и размеры в регистрах DMA2D, пришло после суточных попыток понять мысли авторов RM433. ))) Но LTDC тоже требуется свой буфер. Причëм, на весь экран. FMC требуется буфер размером, соответствующим только изменяемой части изображения. К тому же, Ваш вариант тоже предполагает использование буфера.
-
Благодарю за желание помочь! ))) Но решение стало таким: - в памяти выделяется экранный буфер размером, соответствующим выводимому изображению - в буфере размещается изображение нижнего слоя со своими индивидаульными размерами и координатами (1 пересылка DMA) - на него накладывается изображение верхнего слоя тоже со своими индивидуальными размерами и координатами (1 пересылка DMA) - буфер выводится в FMC (1 пересылка DMA) Таким образом, требуются 3 пересылки DMA. Наращивать количество слоëв можно по желанию. Соответственно увеличивается количество пересылок DMA, участвуюших в процессе комбинирования изображений. Проверено. )
-
Решение найдено не такое. В буфере рисуется всë, что надо, с какими угодно размерами и координатами, с требуемыми цветовыми параметрами и смешиванием. Всë это настраивается регистрами DMA2D. Потом буфер посредством того же DMA2D за одну пересылку выводится в FMC. Получается, что принципиальных различий в работе по такому варианту и работой через LTDC и нет. И в том, и в другом вариантах изображение формируется в экранном буфере, а потом пересылается в дисплей. Только в варианте с LTDC весь буфер постоянно пересылается с кадровой частотой, а в варианте с FMC можно пересылать требуемые фрагменты изображения в требуемые моменты времени.
-
Я разве говорил про одинаковые размеры? ))) И про одноэтапное решение я тоже не говорил. )))
-
Доброго Вам дня! Благодарю за желание помочь. ))) DMA2D должен обеспечивать, об этом и RM0433 говорит: "Copy from two sources with independent color format and blending". Причём, с наложением двух областей с одинаковыми размерами и выводом в FMC справляется как надо. Я это проверял. У DMA2D для этого и специальный режим предусмотрен "memory-to-memory with PFC and blending".
-
Доброго времени суток всем! Подскажите, пожалуйста, как вычисляются смещения для совместного вывода двух изображений? Поясняю: есть изображения uint16_t background_img[240*240], uint16_t foreground_img[40*40]. Оба в формате ARGB1555. LCD подключен через FMC. Как их вывести на экран совместно, но чтобы изображение foregound_img было смещено относительно background на какие-то значения X,Y? Пример кода: DMA2D->CR|=DMA2D_CR_MODE_1; //memory-to-memory with blending DMA2D->FGPFCCR|=DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_1; //ARGB1555 color mode for foreground image DMA2D->BGPFCCR|=DMA2D_BGPFCCR_CM_0|DMA2D_BGPFCCR_CM_1; //ARGB1555 color mode for background image DMA2D->OMAR=0x60080000; //FMC bank DMA2D->BGMAR=(uint32_t)background_img; DMA2D->FGMAR=(uint32_t)foreground_img; DMA2D->NLR=??? DMA2D->FGOR=??? DMA2D->BGOR=??? DMA2D->OOR=??? Отдельно изображения в режиме memory-to-memory нормально выводятся. Голова уже распухла. Может, пора отвлечься и за пивком сходить? )))
-
точность DS18B20 0.5 градуса по описанию, для 8 датчиков с минимальной программой TINY2313 хватит "за глаза", ещё и на реле ноги останутся именно такой контроллер проверен временем, только надо учитывать отличия DS18B20 от DS1820
-
я встречал такое, когда у меня к порту B были подключены DS18B20, т.е. активное устройство. программирование по SPI предполагает последовательность импульсов, которые воспринимались датчиками как обмен с ним. соответственно, датчики начинали сами обмен, что искажало картину SPI. я ответил на ваш вопрос?
-
МЛЯ! А ведь ещё в детском саду говорили: тщательно проверяй плату после монтажа!!! :05: А связано это с тем, что линии SPI висят на линиях порта B. Соответственно, если на противоположном конце кабеля есть что-то, подтягивающее или просаживающее, программатор и будет это воспринимать с линии
-
может, я не понял? как тогда STK работать будет?