PriBoris 0 8 апреля, 2014 Опубликовано 8 апреля, 2014 · Жалоба Если это делать в прерывании DMA *pDMA12_CONFIG &= ~(1<<0); *pEPPI0_CONTROL &= ~(1<<0); *pDMA12_START_ADDR = &adwDisplayBuffer1[0]; *pDMA12_CONFIG |= (1<<0); *pEPPI0_CONTROL |= (1<<0); то некрасиво проскакивает черная полоска (на последней строке) Как делать чтобы было правильно и красиво ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexeyv 0 8 апреля, 2014 Опубликовано 8 апреля, 2014 · Жалоба Правильно и красиво - надо настроить DMA на режим автобуферизации с двойной циклической буферизацией. Тогда прерывания будут приходить по заполнению каждого буфера и не надо будет перенастраивать DMA. Читай ADSP-BF54x Blackfin Processor Hardware Reference, страница 7-64, да и вообще весь раздел 7. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PriBoris 0 9 апреля, 2014 Опубликовано 9 апреля, 2014 (изменено) · Жалоба Правильно и красиво - надо настроить DMA на режим автобуферизации с двойной циклической буферизацией. Тогда прерывания будут приходить по заполнению каждого буфера и не надо будет перенастраивать DMA. Читай ADSP-BF54x Blackfin Processor Hardware Reference, страница 7-64, да и вообще весь раздел 7. Спасибо, всё получилось - красиво и без мусора. 2 дескриптора, каждый указывает на свой буфер. В статическом состоянии каждый зациклен на самого себя, а когда нужно сменить экран то перенапрявляю один дескриптор на другой. Изменено 9 апреля, 2014 пользователем PriBoris Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
PriBoris 0 4 июня, 2014 Опубликовано 4 июня, 2014 · Жалоба Не могу понять по документации: у меня есть 18-битная панель сейчас пиксель хранится в памяти в виде RGB888 и на лету перепаковывается в RGB666 а если я хочу подключить ее к BF548 в 16-битном режиме, мне нужно что-то аппаратно менять ? сейчас на существующей плате провёл программный эксперимент - в 16-битном режиме нормального синего цвета так и не добился в лучшем случае грязно-зеленый надо понимать, для 16-бит нужно корректировать плату? перефразирую главную хотелку - хочу чтобы пиксель занимал 16-бит в памяти Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kochevkv 0 22 июля, 2015 Опубликовано 22 июля, 2015 · Жалоба Не могу понять по документации: у меня есть 18-битная панель сейчас пиксель хранится в памяти в виде RGB888 и на лету перепаковывается в RGB666 а если я хочу подключить ее к BF548 в 16-битном режиме, мне нужно что-то аппаратно менять ? сейчас на существующей плате провёл программный эксперимент - в 16-битном режиме нормального синего цвета так и не добился в лучшем случае грязно-зеленый надо понимать, для 16-бит нужно корректировать плату? перефразирую главную хотелку - хочу чтобы пиксель занимал 16-бит в памяти Хоть и поздно, но отвечу :) Да, надо переделать плату. Нижние разряды RED и BLUE дисплея надо куда нибудь подтянуть (VCC или GND или следующий бит (т.е. два нижних разряда R и B на дисплее вместе)). И подключать дисплей как 16-разрядный. Т.е. шина ужимается в 16 выводов без "пробелов". Ну и в настройках eppi указать, что выводить надо без перепаковку на лету. Разве что можно сделать swap красного и синего Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться