Страница 1 из 15
Дисплей Nokia 3410 (3310)
Добавлено: Вт июл 25, 2006 21:35:03
Pavel V.
Доброго времени суток!
Наверняка многие пробовали подключать один из этих симпатичных дисплейчиков к МК. Вот и я не исключение - купил дисплеи (один 3310, другой 3410), спаял схемку на ATMEGA8, нарыл две библиотеки для работы с 3310, и после некоторых танцев с бубном оно даже что-то стало показывать. Но, несмотря на все мои усилия, не совсем то что хотелось бы..
Алгоритм их работы более-менее понятен, но при казалось бы логичных телодвижениях что-нибудь да не так. То какая-то часть изображения не отобразится, то сдвинется куда-то - в общем чудеса..
А при попытке подключить экран 3410 (у него разрешение больше - 96х65, у 3310 - 84х48), переменныя с кэшем данных для отправки в дисплей вылезает за пределы RAM

Неужели придется внешнюю память довешивать? Или какие-то еще приемы существуют?
Не завалялось ли ни у кого каких-нибудь наработок в данном направлении? Очень хотелось бы изучить! А то я замучился уже..
К сообщению прикладываю свои файлики.
Добавлено: Ср июл 26, 2006 12:27:27
Spider
Я так понял ты взял библиотеки с МикроСилк. У этого человека старнное понятие о работе с дисплеем, он хранит картинку в памяти МК и её целиком выводит. Если немного переработать его код на прямую работу с дисплеем, то всё нормально.
ЗЫ. Мог бы ты кинуть схему включения дисплея так "как оно работает у тебя", ибо пытался я заставить работать 3310, не получилось.
Добавлено: Ср июл 26, 2006 14:42:41
Pavel V.
Сейчас пробую напрямую. Вот так:
Код: Выделить всё
void LcdDrawBitmap( void )
{
unsigned short i;
LcdSend(0x80, LCD_CMD);
LcdSend(0x40, LCD_CMD);
for (i=0; i<504; i++)
LcdSend( glcdNokia[i], LCD_DATA);
}
glcdNokia[i] - массив с картинкой.
А получаю на экране то, что приложил к сообщению (IMG1443)..
Должно быть так: nokia02.jpg
Схема подключения как на микросилке, тоже прицепил к сообщению.
Контроллер и дисплей питаю +3 В, шью 5-вольтовым программатором, ничего не отключая. Все живо-здорово.
Добавлено: Ср июл 26, 2006 15:28:03
Pavel V.
Ура!! Я его победил! После того как попробовал данные отправлять кусками (постранично). Вот мой код:
Код: Выделить всё
void LcdDrawBitmap( void /* unsigned char* bitmap */)
{
int col, page, i = 0;
byte myPageAddr;
for(page = 0; page < 6; page++)
{
myPageAddr = (page | 0x40);
LcdSend( myPageAddr, LCD_CMD );
LcdSend( 0x80, LCD_CMD );
for (col = 0; col < LCD_X_RES; col++)
LcdSend( glcdNokia[page * LCD_X_RES + col], LCD_DATA);
}
}
Круто
Если интересно, то могу выложить готовый код когда приведу в порядок (сейчас там творческий хаос

)
Добавлено: Пт июл 28, 2006 07:01:26
Spider
От чего же у меня не работает?
ВРОДЕ всё уже проверил что касается подключения....
Добавлено: Пт июл 28, 2006 20:09:25
Pavel V.
Видимо, дисплей битый
Кстати, я понял почему в оригинальной библиотеке данные хранятся в оперативке, а потом идут в дисплей. Это для того, чтобы рисовать точки и линии, ведь данные отправляются в контроллер экрана не попиксельно, а в виде массива 1х8, и если требуется нарисовать/стереть заданный пиксел, надо знать что там было до этого..
Но я думаю, можно и блоками рисовать. Хочу еще написать функцию для вывода картинки произвольного размера в необходимую часть экрана..
Прицепил свой код к сообщению, может кому пригодится.
(Кстати, проверено и на 3410 - работает. Достаточно поменять значения LCD_X_RES и LCD_Y_RES)
3310 - 84 и 6
3410 - 96 и 8
Добавлено: Чт авг 03, 2006 18:17:04
Spider
Ну всё. выручайте. Всё собрал и не работает. Прикладываю скрины асцилогрофа чтобы не возникало вопросов. Скрины конечно абстрактные, но видно, что на шинах сигналы есть. Что касается правильности подключения - да уже проверил на 9E99 раз. Софт с mycrosylc.com (или как там его)
Добавлено: Пт авг 04, 2006 18:34:23
Pavel V
Проверь контакт между шлейфом и дисплеем. У меня тоже сначала не работал, пока я его не разобрал и не почистил.
Добавлено: Пт авг 04, 2006 18:40:23
Гость
В смысле между стеклышком и контактной площадкой? Грубо говоря поджать?
ЗЫ. А куда делись аттачи?

Добавлено: Пт авг 04, 2006 18:42:00
Spider
Всё понял с аттачами - сам дурак.
Добавлено: Сб авг 05, 2006 21:43:20
Pavel V.
Да, да. Между стеклом и контактами. Можешь попробовать резинку от калькулятора/часов..
Добавлено: Сб авг 05, 2006 22:04:29
Spider
Уууу у меня много (достаточно) дисплеев с резинками, ваще ненавижу их. Гемор их подключать если честно

Добавлено: Вс авг 06, 2006 17:24:12
Гость
Чёрт. Что-же оно не помогает....
Добавлено: Вт авг 08, 2006 12:08:09
Spider
Anonymous писал(а):Чёрт. Что-же оно не помогает....
Урааа! Работает. Что было не знаю, просто работает

3310
Добавлено: Вс мар 11, 2007 20:34:41
Voodoo-Cat
Помогите прикрутить к 3213 дислей от 3310!
Библиотеки первого поста не пашут, ошибки в асемблерном коде.
Добавлено: Пн июн 04, 2007 17:16:14
Tohey
А кто подскажет для чего нога SCE? По даташиту не разобрался, но понял одно, что если она в "1" то в память ни чего не записуется. Когда именно её следует "дёргать"? И ещё вопрос, можно ли обнулять счетчики адреса X, Y - НЕ программным путем, не изменяя содержимого LCD-RAM?
P.S. Сегодня наконец то подключил LCD-3410 - понравилось

Добавлено: Вт июн 05, 2007 16:47:07
Tohey
Ок. А кто скажет есть кака то софтина для преобразования файла типа Ч\Б *.bmp > в массив, для LCD NOKIA?
Добавлено: Ср июн 06, 2007 16:48:26
Tohey
Тогда придется писать

Добавлено: Ср июн 06, 2007 17:53:26
Vadim
Tohey, не спешите, посмотрите во здесь:
http://www.institute-rt.ru/common/archive.shtml Обратите внимание на четвёртую новость сверху (от 8 августа), "Предлагаем новую конструкцию MP3-плеера на базе микросхемы ...." Плеер с экраном от 3310, и одна из его особенностей- наличие фоновых картинок. Ссылка на программу-конвертер,- прямо под новостью. Может и подойдёт Вам. А ежели, чего подправить в проге захотите, там же и е-мыл автора приведён.
ЗЫ. Оригинально, между Вашими постами- ровно сутки. Невелико у Вас терпение

Добавлено: Ср июн 06, 2007 21:39:35
Tohey
Vadim спасибо! То что надо!
Терпения очень мало, сразу после работы на РадиоКот ))