Заголовок сообщения: Начинаю разбираться с графическим диплеем. Кое-что неясно.
Добавлено: Чт окт 09, 2008 17:42:59
Вымогатель припоя
Зарегистрирован: Вт мар 04, 2008 20:03:03 Сообщений: 568 Откуда: Нижний Новгород
Рейтинг сообщения:0
Здравствуйте все! Начал я разбираться потихоньку с графическим дисплеем, почитал статью в разделе "Лаборатория", и сразу столкнулся с первой проблемой:
Я не понимаю каким образом каждый символ в файле symvol.h кодируется всего пятью числами? к примеру- {0x7e,0x11,0x11,0x11,0x7e}, //Буква A
По столбикам вертикально чтоли?
Копался долго в инете, а ничего, где принципы данных девайсов подробно разжеваны на русском не нашел.
_________________ Трудно быть деревянным, совсем трудно....
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
Я недавно осваивал LCD от Nokia3310 и там в даташите всё прикросно расказывается как выводятся данные по 8 пикселей вертекально за одну команду по SPI. Рекомендую почитать даташит.
А чего тут жевать-то?
Если речь идет о дисплее подобном тому, что в примере, то 1 точка на экране - 1 бит. Стандартный шрифт 5 на 8 точек. Вот и получается, что информация об 1 символе хранится в 5 байтах. И ваше предположение верно - в этом случае именно по столбикам.
Можно и по строкам хранить. У каждого из способов свои достоинства и недостатки.
Информацию на экран можно выводить как байтом, так и битом.
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
Ну рассмотрим пример с LCD от Nokia 3310. За один раз можно вывести только один столбец по вертикале на 8 пикселей. Командой такого типа 0b01110111... 1-пиксель горит. 0-пиксел не горит. После того как был выведенодин столбец, ЖК сам автоматически переходит на слебуйший столбец, и так до конца матрицы. Вот цветная илюстрация работы с LCD 3310.
Ребят, мне б ваши проблемы Ладно выводить буквы - просто и так далее....а вот кто ответит на вопрос - как выводить графику?
например кружочек 8х8 точек это понятно и просто.....да вот нет....а как его теперь перечеркнуть? для этого надо побитовое или....а для него надо старое значение столбика ....где ж ты все эти столбики удержишь в памяти? 12 * ширину(68) 816 байт... говорят нокия предусмотрела возможность чтения из екрана....да только как это реализовать?
Зарегистрирован: Вс мар 04, 2007 13:14:25 Сообщений: 375 Откуда: Украина
Рейтинг сообщения:0
А зачем с него читать?! Вот до сих пор все работали с ним, и никто не жалаовался. Тем более что там стоит односторонний SPI поправте если ошибаюсь...
Может кто подключал дисплей от ERICSSON T28 к МК, знаю что работает по i2c, каие команды для инициализации?
при этом я не знаю что этот кружочек там был(фотовая картинка например загружена была)
мне надо взять с экрана первый столбик - 01111110 и следать лог ИЛИ с 00010000 = 01111110 - записать его в память экрана потом взять второй байт - 10000001 и тоже ИЛИ с 00010000 = 10010001 и записать в память экрана и так далее!
мне нужно попиксельное рисование а не побайтово-столбиковое да....побайтово-столбиком УДОБНО ВЫВОДИТЬ БУКВЫ ибо на фоне букв нету ничего....а мне надо например разлиновать сеткой пунктирной экран с шагом в 5 пикселов(5 пустых шестой - точка , 7...пустых и т.д.) и потом туда по точке рисовать график ну допустим тупой - температурный, причём с возможностями приближать участок(значения каждые 5 минут читаются и пишутся в еепром)вот минимум это весь день а максимум - это одна точка каждые 5 минут - вот это мне надо......с этого экранчика.....следовательно мне надо либо хранить весь массив точек на экране зажженных либо юзать память экрана что есть более правильно и так далее....но надо научиться считывать биты или байты-столбики с экрана
Если мне память не изменяет, этот экран на контроллере KS0066? а он, по-моему, не умеет управлять областью отобажения побитово (поправьте, если ошибаюсь). Если это очень критично, возьмите что-нибудь на T6963 от Toshiba, там эта функция точно есть (вот практически сейчас разбираюсь с таким экранчиком 240х128), но опять таки, надо все равно впихивать в индикатор чельный байт, чтобы зажечь/погасить точку.
_________________ Оптимизм х (Опыт + Знания) = const
Lcd First we need to extract/salvage the LCD from the Nokia 3310 mobile phone. Be extremely careful and patient during this process, because as you know the display is just a thin piece of glass that is very sensitive.
There is an 8 pin connector on the back of the display, in our case it's glued to the glass (Nokia 3210 has “rubber” connectors so this one is much easier to use). This is a Phillips PCD8544 display, it can be easily found on the net if you want more information about it.
єто цитатка из инструкции по изготовлению популярнейшего цифротермометра на ПИКе.....тут ясно сказано - контроллер Филипс PCD8544http://www.myplace.nu/mp3/files/pcd8544.pdf
Ребят, мне б ваши проблемы Ладно выводить буквы - просто и так далее....а вот кто ответит на вопрос - как выводить графику? например кружочек 8х8 точек это понятно и просто.....
А можно по подробнее тупому, как мне вывести рисунок например 10х10? Желательно в CVAVR.
Есть два варианта ещё из школы на паскале - либо ты хранишь все свои данные в массиве (оперативка) типа BOOLEAN(тоесть 0 или 1) а размер массива - 48 на 84. рисую графики сетки подписи и т.д. - рисуешь как хочешь и чем хочешь в своём массиве а по таймеру там например или какому-то другому источнику - "Обновляешь" экран - тоесть запускаешь процедурку которая твой массив постолбиково выгружает полностью на только что сброшенный и переинициализированный экранчик НО...есть одно большое но - памяти то у нас малавата.....потому можно ещё 2 варианта придумать - например хранить базовые "фоны" как картинки - тоесть в еепром зашить массивы из БАЙТОВ расположенных по строчкам и столбцам(ну чтоб легче было) а потом при входе например в закладку - график(в программе) перед выводом точки сначала высчитать номер строки(8-мибитовой) а потом сделать ИЛИ уже той точки и того что в этом месте в ЕЕПРОМЕ написано
ну или третий вариант - просто сетка - это уравнение....и условие его просто х=2*у например....тогда опять же в конце вывода делать ИЛИ того что даст уравнение и того что дал график
writecomm((0x80|x)); // х - это номер столбика - он у нас один в один writecomm((0x40|y/8)); DC = 1; spi(0b00000001 <<y>167) { motor_step = 1; lcd_clear(); } // бум выводить синусоиду lcd_putdot(motor_step/2, (char)(24+10*sin((float)(motor_step-24)/8)));
switch(motor_step/40){ case 1: PORTC = 0b00001001; break; case 2: PORTC = 0b10010000; break; case 3: PORTC = 0b00000110; break; case 4: PORTC = 0b01100000; break; }
OCR0=0xFF; }
ну здесь я ещё лампочками дергаю типа шагового двигателя
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения