дисплей Nokia-1202
|
|
anatol |
Дата: Вт, 17.09.2013, 19:30 | Сообщение # 31 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
С успехом. Код ока не соображу, если мне надо расположить символ Сначала заполняете картинкой "теневое" ОЗУ или загружаете в память файл шрифтов. Разумеется озу как такового нет, а массив сидит в памяти или рисуется по математике. Или производится изменение небольшой области. Это для картинок. Алфавит рисуется по отображаемому знакоместу, т.е. есть файл шрифта выполненный, к примеру, в формате 8х8. Это 8 байт на знак. Расположение байт в файле шрифтов как отображаются на экране. получается 8 х 12 знакомест. Вывод первого знакоместа будет в 1 ,9,17,25,33,41,49,57 байте причем сами байты берутся с 1по 8 из знака файле шрифтов.
|
|
|
|
доцент2 |
Дата: Вт, 17.09.2013, 21:47 | Сообщение # 32 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
С картинками пока не работал, но принцип как и со шрифтами - можно хранить во внешнем EEPROM и считывать. Мне непонятно вот что: допустим мне нужно установить символ начиная с 38 столбика (010 0110), это значение надо распределить между Х1 и Х2, причем в Х1 надо записать только 010, а в Х2 0110 Это конечно можно сделать считывая побайтно 010 0110 и записывать соответственно в Х1 и Х2, но может есть способ по проще?
Пока все работает только в протеусе причем на Nokia-1100 на макетке с Nokia-1202 работать не хочет (попробовал уже третий новый дисплей), в чем может быть ошибка?
Сообщение отредактировал
доцент2 - Вт, 17.09.2013, 22:00
|
|
|
|
ivan_fd |
Дата: Вт, 17.09.2013, 22:22 | Сообщение # 33 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Да ошибся, контроллер не тот, где то читал, что одинаковые, вот и попутал.
Давайте Ваш весь код, который пробуете.
А на счет позиции курсора, может это поможет.
Код static void lcd_set_row(unsigned char row) { lcd_write_byte(0xB0 | (row & 0x0F), 0); // Page address set }
static void lcd_set_col(unsigned char col) { lcd_write_byte(0x10 | (col>>4), 0); // Sets the DDRAM column address - upper 3-bit lcd_write_byte(0x00 | (col & 0x0F), 0); // lower 4-bit } Конкретно вот это
lcd_write_byte(0x10 | (col>>4), 0); // Sets the DDRAM column address - upper 3-bit lcd_write_byte(0x00 | (col & 0x0F), 0); // lower 4-bit
Вам нужно.
Сообщение отредактировал
ivan_fd - Вт, 17.09.2013, 22:25
|
|
|
|
доцент2 |
Дата: Пт, 20.09.2013, 18:46 | Сообщение # 34 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
должно помочь с позицией. пример кода в приложении и модель в протеусе с Nokia-1100 символ "А" почти в середине дисплея.
Добавлено (17.09.2013, 22:50) --------------------------------------------- Цитата (ivan_fd) lcd_write_byte(0x10 | (col>>4), 0); // Sets the DDRAM column address - upper 3-bit lcd_write_byte(0x00 | (col & 0x0F), 0); // lower 4-bit помогло спасибо! RES дисплея кинул на +3,3В и он заработал!!! УРА!! Огромное спасибо всем кто поучаствовал!!! Завтра побалуюсь с настройками, наверное еще вопросы возникнут.
Добавлено (18.09.2013, 21:33) --------------------------------------------- Вопросы возникли как и предполагал. Разобрался с командой реверса изображения по вертикале Dan=$C8: GoSub Data_LCD' Реверс изображения $CO-нормальное, $С8-реверс по вертикале, по умолчанию $С0 работает! А вот реверс по горизонтале Dan=$A0: GoSub Data_LCD' Реверс изображения $AO-нормальное, $A1-реверс по горизонтале, по умолчанию $A0 не работает ?????? Подскажите, может есть небольшая хитрость? Видел в инете вывод графики на данном дисплее, но оно все на ассемблере или Си, можете подсказать как вывести например наклонную прямую с координатами Х1, У1 и Х2, У2 ?????Добавлено (20.09.2013, 18:46) --------------------------------------------- подскажите ??????
Сообщение отредактировал
доцент2 - Пт, 20.09.2013, 18:44
|
|
|
|
Matrix252005 |
Дата: Пт, 20.09.2013, 21:44 | Сообщение # 35 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Приятного времени суток!!!
Цитата (доцент2) ...можете подсказать как вывести например наклонную прямую с координатами Х1, У1 и Х2, У2 ????? Если умеете вывести пиксель на экран, то дальше проблем нет... Вывести наклонную линию, так же как и простую линию, только изменяете обе координаты Х1 и У1:
Х1, У1 = 1 пиксель, Х1 + 1, У1 + 1 = другой пиксель... и так до Х2, У2
THE TRUTH IS OUT THERE.
С уважением, Николай.
Сообщение отредактировал
Matrix252005 - Пт, 20.09.2013, 21:45
|
|
|
|
доцент2 |
Дата: Пт, 20.09.2013, 23:17 | Сообщение # 36 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
С выводом пикселя проблема! Передача идет из 8бит, т.е. допустим 00100000. А можно как-то задавать конкретную точку?
|
|
|
|
anatol |
Дата: Сб, 21.09.2013, 00:05 | Сообщение # 37 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
471
Замечания:
±
На сайте с 10.02.2010
Статус:
Offline
|
YES! Ну вы молодец... Этими дисплеями у меня стол завален... А доку почитать и извилинами пошевелить? Насколько я увидел - контроллер не допускает чтения из видеоОЗУ. Соответственно необходимо хранить самому изменяемую часть. Кроме того при записи байта, контроллер автоматом увеличивает адрес следующего байта. И для изменения надо вновь ввести адрес ОЗУ. Короче читайте МУ-МУ - там все написано. Для доки вот бесплатная читалка здесь http://helpx.adobe.com/ru/reader.html Продублировал. Позволяет выделить текст (в "правильно" созданных *.pdf) и перевести к примеру здесь http://o-db.ru/ru/translate.
Сообщение отредактировал
anatol - Сб, 21.09.2013, 00:06
|
|
|
|
доцент2 |
Дата: Сб, 21.09.2013, 11:13 | Сообщение # 38 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Читаю... на сколько позволяют знания, но абривиатура, сокращения и технические термины зачастую даются только с опытом! Переводилками пользуюсь, но их результат иногда можно Задорнову отправлять. Поэтому и обращаюсь к более опытным! Про наращивание адреса это все понятно, т.е. я могу задать грубо говоря координату по горизонтале. А вот по вертикале получается только по строчно (8 бит в каждой). Получается по вертикале задать конкретную точку не получиться?
|
|
|
|
доцент2 |
Дата: Сб, 21.09.2013, 14:01 | Сообщение # 39 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Matrix25005 библиотека на 1100
|
|
|
|
ivan_fd |
Дата: Сб, 21.09.2013, 21:39 | Сообщение # 40 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Посмотрите вот эту http://radiokot.ru/articles/29/ тему. Там библиотека для 3310. В ней есть вывод линий кругов и т. д.
|
|
|
|
доцент2 |
Дата: Вт, 14.01.2014, 23:39 | Сообщение # 41 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Спасибо за ссылку. Она к сожалению на Си - часть не понятна. Попробую покрутить, может и разберусь.Добавлено (26.09.2013, 00:17) --------------------------------------------- Библиотека заработала. Спасибо Matrix252005. Добавлено (14.01.2014, 23:39) --------------------------------------------- может кто сталкивался с такой проблемкой - не меняется контрастность дисплея Nokia-1202. в соответствии с описанием контроллера, установка контрастности осуществляется после команды $Е1 в пределах $00...$FF (-127...127). но по факту изменения уровня контрастности не происходит. Dan=$E2: GoSub Data_LCD' Reset Dan=$3D: GoSub Data_LCD' Charge pump Dan=$02: GoSub Data_LCD' Charge pump = 4 (default 5 is too hight for 3.0 volt) Dan=$E1: GoSub Data_LCD' индификатор команды для изменения контрасности дисплея Dan=$15: GoSub Data_LCD' from -127 to +127 ???????? контрасность не меняется Dan=$A4: GoSub Data_LCD' Display all points ON ($А4)/OFF($А5) Dan=$2F: GoSub Data_LCD' Power control set Dan=$A6: GoSub Data_LCD' Дисплей позитив $А6, негатив $А7, по умолчанию - позитив Dan=$C0: GoSub Data_LCD' Реверс изображения $CO-нормальное, $С8-реверс по вертикале, по умолчанию $С0 Dan=$A1: GoSub Data_LCD' Реверс изображения $AO-нормальное, $A1-реверс по горизонтале, по умолчанию $A0 Dan=$AF: GoSub Data_LCD' Дисплей ON($AF)/OFF($AE)
дисплей не оригинал - может из-за этого?
|
|
|
|
igor_slavuta |
Дата: Пт, 20.06.2014, 09:32 | Сообщение # 42 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 24.06.2011
Статус:
Offline
|
А можно взглянуть на листинг программы, а то что-то у меня в шпротах ничего не получается.
Сообщение отредактировал
igor_slavuta - Пт, 20.06.2014, 09:34
|
|
|
|
доцент2 |
Дата: Пт, 20.06.2014, 20:12 | Сообщение # 43 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
293
Замечания:
±
На сайте с 13.09.2011
Статус:
Offline
|
Цитата igor_slavuta А можно взглянуть на листинг программы, а то что-то у меня в шпротах ничего не получается.
Можно, вот маленький примерчик. Собирал измеритель пульса. Экран в протеусе вверх ногами, в железе нормально работает китаец.
Сообщение отредактировал
доцент2 - Пт, 20.06.2014, 20:13
|
|
|
|
igor_slavuta |
Дата: Вс, 29.06.2014, 10:56 | Сообщение # 44 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
3
Замечания:
±
На сайте с 24.06.2011
Статус:
Offline
|
Cпасибо.
|
|
|
|