Anatrulij 0 3 февраля, 2009 Опубликовано 3 февраля, 2009 · Жалоба Извини было много работы, некогда было отписаться. Есть несколько вопросов: 1. Где настройка PLL, скорости памяти и тд.?(Надеюсь вынесено в low_level_init) 2. #define BUFFER_ADDR 0xA0000000 это хорошо, но как ты собираешся формировать там изображение. Тебе нужно выделить массив размером 240*320*2 байт, а точнее два таких массива. Пока из одного будет выводится картинка, ты во второй пишеш новую, а потом меняеш указатель из какого масива выводить. 3. Для чего задержки for(i=0;i<50000;i++); Я уже заждался. . По поводу заданных вопросов: 1. PLL не использую, настройка памяти есть(запись, чтение проходит успешно) 2. Для видеобуфера использую SRAM, начиная с адреса 0х80000000. 3. Часть кода брал из другого источника, который сам уже и коректировал, там и была данная задержка. Если она не нужна, то я уберу? Как выводить изображение вроде разобрался, но проблема в настройках развертки - выводит не то что хотелось бы. 7:2 PPL = 0x140(320) количество пикселей данных В ДШ к контроллеру (как я понял) написано, что (320/16)-1 = 19 Так что я щас мучаюсь с настройкой LCD_TIMH, LCD_TIMV. Если будут советы, то с удовольствием выслушаю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovz 0 4 февраля, 2009 Опубликовано 4 февраля, 2009 · Жалоба Как выводить изображение вроде разобрался, но проблема в настройках развертки - выводит не то что хотелось бы. В ДШ к контроллеру (как я понял) написано, что (320/16)-1 = 19 Так что я щас мучаюсь с настройкой LCD_TIMH, LCD_TIMV. Если будут советы, то с удовольствием выслушаю Опиши что выводит и что хочется. В чём именно проблема синхронизации? и по поводу установки количества точек в линии ты прав, я не досмотрел. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anatrulij 0 5 февраля, 2009 Опубликовано 5 февраля, 2009 · Жалоба Опиши что выводит и что хочется. В чём именно проблема синхронизации? и по поводу установки количества точек в линии ты прав, я не досмотрел. Уже выводит куда я хочу. НО!!! Я вывожу белый квадратик на черном фоне в центре экрана, а выводит светло желтый квадратик на феолетовом. в чем может быть причина такого безобразия. Люди говорят, что дело в настройках LCD_TIMH, LCD_TIMV. Значение данных регистров я изменяю, а реакции ноль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovz 0 5 февраля, 2009 Опубликовано 5 февраля, 2009 (изменено) · Жалоба Уже выводит куда я хочу. НО!!! Я вывожу белый квадратик на черном фоне в центре экрана, а выводит светло желтый квадратик на феолетовом. в чем может быть причина такого безобразия. Люди говорят, что дело в настройках LCD_TIMH, LCD_TIMV. Значение данных регистров я изменяю, а реакции ноль. Тут не подскажу, но мне кажеться копать нужно в направлении представлений цветов поиграйся в регистре LCD_CTRL с настройками битов LcdBpp(3:1). LCD_CTRL = ((1<<5) | (6<<1)); в этой строке замени 6 на 4 Изменено 5 февраля, 2009 пользователем kovz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anatrulij 0 5 февраля, 2009 Опубликовано 5 февраля, 2009 · Жалоба Тут не подскажу, но мне кажеться копать нужно в направлении представлений цветов поиграйся в регистре LCD_CTRL с настройками битов LcdBpp(3:1). LCD_CTRL = ((1<<5) | (6<<1)); в этой строке замени 6 на 4 Да, дело в настройках цвета. буду копать дальше. СПАСИБО за ответы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Wano 0 5 февраля, 2009 Опубликовано 5 февраля, 2009 · Жалоба Да, дело в настройках цвета. буду копать дальше. СПАСИБО за ответы По поводу цвета нужно ещё смотреть какой режим включен 8 или 16 бит на цвет. Если 8 бит то нужно заполнять палитру в 256 цветов, порядковый номер из памяти будет переводиться в цвет автоматом согласно палитре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jurdens 0 11 августа, 2009 Опубликовано 11 августа, 2009 · Жалоба Извини было много работы, некогда было отписаться. Есть несколько вопросов: 1. Где настройка PLL, скорости памяти и тд.?(Надеюсь вынесено в low_level_init) 2. #define BUFFER_ADDR 0xA0000000 это хорошо, но как ты собираешся формировать там изображение. Тебе нужно выделить массив размером 240*320*2 байт, а точнее два таких массива. Пока из одного будет выводится картинка, ты во второй пишеш новую, а потом меняеш указатель из какого масива выводить. 3. Для чего задержки for(i=0;i<50000;i++); А по поводу вывода на экран нет ничего проще! Отведите 307200(0x4B000) байт видеопамяти начая с адреса 0xA0000000 и разбейте на две части размером 320*240*2 байт, тоесть столько сколько необходимо на один экран. Далее используя Next base address update interrupt(введи в поиске по usermanual на LPC2478), подсовываеш ему то 0xA0000000, то 0xA0025800 в регистр LCD_UPBASE. А сам в это время в другой части буфера формируй изображение. Если совсем просто, выведи статическую картинку, выдели в рам массив unsigned short LCD_Frame[76800] забей его чем нибуть осмысленным, и передай на вывод LCD контроллеру в LPC : LCD_UPBASE = &LCD_Frame[0]; Далее микроконтроллер сам выплюнет всё в экран. А можно ли использовать LCD_LPBASE в режиме TFT ?Установив LCD_CTRL_bit.LcdDual=1; для автоматического переключения страниц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться