Без даташита тяжко. =) Но есть некоторые сходства с кой-каким иным дисплеем. И если судить по строкам
Код:
WriteToLCD(CMD,0x3a); //interfase pixel format WriteToLCD(DAT,0x03); //
дисплей запускают в 12-битном режиме. Вы учитываете это?
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Я имею в виду количество цветов, которое способен отобразить дисплей. Ведь от этого зависит и то, каким количеством бит будет определяться засветка одного пикселя. Например, для 256-цветного режима достаточно выводить 1 байт: RRRGGGBB, а для 4096-цветного это уже будет 12 бит: RRRRGGGGBBBB. Об этом режиме я и говорю. Вообще, разместите кусочек кода вывода на дисплей (именно как Вы выводите эти цветные полосы).
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Это Вы чей-то исходник использовали, или сами писали? Я вижу здесь вообще 16-битные определения цветов. Вот, например,
Код:
WriteToLCD( CMD, 0x2C ); - команда записи в память дисплея WriteToLCD( DAT, (Color >> 8) & 0xFF ); - выгрузка старшего байта WriteToLCD( DAT, Color & 0xFF ); - выгрузка младшего байта
То есть у Вас данные выгружаются в формате RRRRRGGGGGGBBBBB. А при инициализации, судя по всему, объявлен 12-битный формат. Лучше вообще для начала попробовать 8-битный режим.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Bonio
Заголовок сообщения: Re: Дисплеи от мобильных телефонов- осцилограммы работы
Это исходник с первых страниц темы. Если инициализировать в 8-битонм режиме (0x02), красный становиться ещё более бледнее, а если в 16-битном (0x05), вобще черный экран.
А вот ещё, что я не понял, это как в разных режимах получаються значения цветов? Вот красный например в 16 битном режиме как записать? а в 8 битном?
PS. а все, понял. Итак, с восьмибитным режимом разобрался, вот правильные цвета))
Да нет, неправильные цвета. Черные полосочки видите? Это потому что у Вас по два байта выгружается, а нужно - по одному. Замените uint16_t Color на uint8_t Color (пошто тратить память на 16-битную переменную, когда она не нужна?), и определяйте цвет 8-битной переменной:
Код:
DrawPixel( j, i, 0xE0 ); DrawPixel(j,i,0x1C); DrawPixel( j, i,0x03);
А в функции void DrawPixel пишите
Код:
WriteToLCD( CMD, 0x2C ); WriteToLCD( DAT, Color );
Bonio писал(а):
Вот красный например в 16 битном режиме как записать?
Вот с этим режимом у самого не получилось ни хрена. Биться и разбираться не стал, бросил (мне 256 цветов выше крыши). Тоже черным заливало, и все тут.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Черные полосочки может это особенность экрана? (маленькое разрешение)
Да нет, должен заливать каждый пиксель. А у Вас получается так: один пиксель заливает нужным цветом, а следующий - черным (0x00). Смотрите программу, где-то должен быть прокол.
Bonio писал(а):
А как вывести на экран строку?
Придется самостоятельно массивчик писать, который потом нужно будет выгружать на дисплей подобно этим полосам. Я делаю так: в фотошопе пишу нужный текст, вырезаю, потом сохраненное изображение конвертирую в массив с помощью Nokia Image Creator (вот здесь возьмите). А после - в нужном месте выгружаю этот массив в память дисплея.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
SubDia, спасибо за помощь. Черные полоски это часть пиксела, такой вот экран. В живую они не заметны. Щас не поленился, сфотографировал экран в максимальном приближении фотоаппарата и вручную посчитал красные пикселы, ровно 101 штука, как и положено. Кроме того, полоски можно заметить и вот на этой фотографии у plutonium. Такчто все нормально
Для конвертации картинок в массив мне больше понравилась программа image2lcd.
И ещё спросить хотел, как можно добиться моментальной смены картинки, только увеличением частоты процессора? Нельзя одной командой залить например заданный квадрат? надо заливать отдельно каждый пиксел?
как можно добиться моментальной смены картинки, только увеличением частоты процессора?
Увеличением частоты тактового сигнала используемого интерфейса - там SPI, если я не ошибаюсь? Однако при этом нужно учитывать скорость, которую способен поддерживать контроллер дисплея.
Bonio писал(а):
Нельзя одной командой залить например заданный квадрат? надо заливать отдельно каждый пиксел?
Можно ограничить заданный квадрат специальными командами (установка координат x и y), а затем залить каждый пиксель в заданной области. Но заливка будет попиксельной - это да.
Bonio писал(а):
спасибо за помощь.
Совершенно не за что. Обращайтесь. =)
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Что такое может быть? Хочу залить картинку во весь экран, объявляю массив размером 8080 (101x80), прошиваю, и вобще ничего не работает, даже экран не инициализируется. Притом, если объявить массив размером например 1010 (картинка 101x10) все прекрасно работает, картинка выводится. Опытным путем выяснил, что МК перестает работать при объявлении очень длинного массива.
Ну так...МК какой? Тинька? А массив оный получается объемом 8080 байт. У контроллера попросту не хватает памяти для него (это то, о чем я говорил в самом начале нашей беседы).
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
А куда шьете массив? Загоняйте во флэш, что ли. Мега32 должна нормально работать. Я вообще стараюсь подобные данные во внешней памяти хранить.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Ну вообще зависит от настроек программы, которую Вы используете для прошивки. В общих случаях так и есть. А иногда нужно ставить галочку "сохранить константы во flash", и т.д. Тут уж я не знаю. Но если бы у Вас массив записывался во флэш, то с Мегой 32 проблем точно не было бы - у нее 32кБ флэш, этого с головой хватает.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Интересно. Прошиваю через avrdude, командой avrdude -p atmega32 -P lpt1 -c stk200 -U flash:w:main.hex
Как я понял, в процессе работы микроконтроллера, объявленные значения подгружаються в оперативку. Такой большой массив в оперативку попросту не помещается, следовательно программа не работает.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения