Дисплей Nokia 3410 (3310)
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
вообще-то проблема не в этом! Массив при таком обьявлении определенной длины получается!
Вы лучше посмотрите на функцию путстр - там есть ограничение на самый первый символ....помоему он не 14 а аж 20-й .... ибо если задать вывод символа ниже начала таблицы символов там условие стоит и оно просто не выводит ничего!
А вообще я пользуюсь всегда простой конструкцией для вывода текста
Ни разу ещё не подводила и т.д. всегда отрабатывает корректно вообще не представляю как по-другому можно
Вы лучше посмотрите на функцию путстр - там есть ограничение на самый первый символ....помоему он не 14 а аж 20-й .... ибо если задать вывод символа ниже начала таблицы символов там условие стоит и оно просто не выводит ничего!
А вообще я пользуюсь всегда простой конструкцией для вывода текста
Код: Выделить всё
unsigned char a2[LcdBufSize];
lcd_gotoxy(1,3);
sprintf(a2, "Initialising..");
lcd_putstr(a2);
или вот ещё кусок кода
sprintf(a2, "t%u=%+.4f\xf8C\n\r",i+1, ds_temp);
lcd_clear_row(1+i);
lcd_gotoxy(1,1+i);
lcd_putstr(a2); // выводим на экранчик "t1=-0.0000C"
Ни разу ещё не подводила и т.д. всегда отрабатывает корректно вообще не представляю как по-другому можно
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Совершенно случайно попался мне под руку проект LC метра на PIC и дисплее от nokia 3310. Автор оказался не жадным и прикрепил исходник к проекту, там караз был исходник функций LCD. Я коечто позаимствувал. Делюсь тем что у меня вышло 
- Вложения
-
- 3310.rar
- (10.2 КБ) 1160 скачиваний
Я не Сашок!!!
- Alex Medvedev
- Встал на лапы
- Сообщения: 95
- Зарегистрирован: Сб мар 01, 2008 12:27:44
- Контактная информация:
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Здравствуйте! Решил спаять платку для тестов LCD. Сам дисплей планирую питать от 3,3В как по даташиту, есть вопрос по согласованию уровней между МК и дисплеем. Посмотрите пожалуйста прикрепленную схему, можно ли так сделать?
- Вложения
-
- cxema.JPG
- Схема
- (9.84 КБ) 1280 скачиваний
Я не Сашок!!!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
Хочу на железке проверить те функции которые уже написал ну и проверять новые функции, а то Proteus работает у меня 1 мин. и закрывается, а так не интересно) У меня ATmega8-16PU обычная не (8L) так что стабильность работы от 3В не гарантируется, лучше сразу поставлю по резистору и стабилитрону.
Я не Сашок!!!
- sachok
- Опытный кот
- Сообщения: 849
- Зарегистрирован: Сб янв 05, 2008 11:05:15
- Откуда: Україна м.Луцьк
- Контактная информация:
У кого то есть пример установки (включения/выключения) пикселя с координатами (х,у) на CVAVR???
Решено!
Решено!
Код: Выделить всё
/*
відображення пікселя з координатами (х, у)
для "увікнення" set = 1
для "вимкнення" set = 0
lcd_set_pixel (1, 2, 1) // "увімкнути"
lcd_set_pixel (1, 2, 0) // "вимкнути"
*/
void lcd_set_pixel(unsigned char x, unsigned char y, unsigned char set)
{
unsigned char value;
unsigned char row;
unsigned char lcd_buffer[8][84];
row = y / 8;
value = lcd_buffer[row][x];
if (set == 1)
{
value |= (1 << (y % 8));
}
else
{
value &= ~(1 << (y % 8));
}
lcd_buffer[row][x] = value;
lcd_gotoxy (x,row);
lcd_send(value, lcd_data);
}
Последний раз редактировалось sachok Сб фев 13, 2010 19:48:37, всего редактировалось 1 раз.
Я не Сашок!!!
- Alex_EXE
- Вымогатель припоя
- Сообщения: 580
- Зарегистрирован: Сб дек 27, 2008 12:01:35
- Откуда: Россия, Екатеринбург
- Контактная информация:
Реализовал программу генератора массива символов - символьный генератор. Программа позволяет генерировать как 5х8, так и 10х16 символы.
Также имеется готовый набор символов (содержащий как английские, так и русские) и функций для работы с ними symbol-generate.c
Также имеется готовый набор символов (содержащий как английские, так и русские) и функций для работы с ними symbol-generate.c
- lerik
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Вт ноя 14, 2006 16:44:28
- Откуда: Белгород
Re: Дисплей Nokia 3410 (3310)
Коты !!!!!
Подскажите в чем может быть проблема?
Дисплей 3310 + мега8
Не могу заставить писать черным по белому т.е. нормально, все отображается в инверсном виде. В чем может быть проблема?
Инициализация такая , перепробовал все - ничего не помогает....
lcd_send(0x21, LCD_CMD); // Перевод LCD в режим внешних команд
lcd_send(0xC8, LCD_CMD); // Set LCD Vop(Contrast = 72)
lcd_send(0x06, LCD_CMD); // Установить температурный коэффициент
lcd_send(0x13, LCD_CMD); // LCD bias mode 1:48
lcd_send(0x20, LCD_CMD); // Перевод LCD в режим cтандартных команд, Горизонтальная адресация (внутренние команды)
lcd_send(0x0C, LCD_CMD); // LCD в нормальный режим отображения (черным по белому)
Протеус отображает в инверсном виде, хотя если загрузить в него другой (чужой) hex, то все работает нормально где копать?
Подскажите в чем может быть проблема?
Дисплей 3310 + мега8
Не могу заставить писать черным по белому т.е. нормально, все отображается в инверсном виде. В чем может быть проблема?
Инициализация такая , перепробовал все - ничего не помогает....
lcd_send(0x21, LCD_CMD); // Перевод LCD в режим внешних команд
lcd_send(0xC8, LCD_CMD); // Set LCD Vop(Contrast = 72)
lcd_send(0x06, LCD_CMD); // Установить температурный коэффициент
lcd_send(0x13, LCD_CMD); // LCD bias mode 1:48
lcd_send(0x20, LCD_CMD); // Перевод LCD в режим cтандартных команд, Горизонтальная адресация (внутренние команды)
lcd_send(0x0C, LCD_CMD); // LCD в нормальный режим отображения (черным по белому)
Протеус отображает в инверсном виде, хотя если загрузить в него другой (чужой) hex, то все работает нормально где копать?
-
yakuzaa
- Встал на лапы
- Сообщения: 88
- Зарегистрирован: Чт июл 24, 2008 12:35:30
- Контактная информация:
Re: Дисплей Nokia 3410 (3310)
Столкнулся с курьезом: подключил дисп Nokia 5210 (84x48, PCD8544). Его особая привлекательность в том, что он малых габаритов, и имеет удобный контактный шлейф, который не плавится при пайке, но! Изображение на нем отзеркалено справа-налево... как программно можно подкорректировать? или прийдется знакоген переписывать? а может команда есть какая? точно знаю, что в Nokia 1100 дисплее есть команда на "отзеркаливание" изображения, но она, естественно, для PCD8544 не катит...



-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: Дисплей Nokia 3410 (3310)
Попробуйте ингициализировать дисплей как в даташите 
по идее я на него не нашел такой функции слева направо или справа налево но с другой стороны...да неприятно....а с третей большая ли разница для знакогенератора????просто перед каждым символом позиционировать курсор и читать не 12345678 а 87654321 из таблицы шрифта
http://www.myplace.nu/mp3/files/pcd8544.pdf
по идее я на него не нашел такой функции слева направо или справа налево но с другой стороны...да неприятно....а с третей большая ли разница для знакогенератора????просто перед каждым символом позиционировать курсор и читать не 12345678 а 87654321 из таблицы шрифта
http://www.myplace.nu/mp3/files/pcd8544.pdf
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re: Дисплей Nokia 3410 (3310)
lerik писал(а):Коты !!!!!
....Протеус отображает в инверсном виде, хотя если загрузить в него другой (чужой) hex, то все работает нормально где копать?
Вот моя процедурка инициализации
Код: Выделить всё
RES=0;
delay_ms(100);
RES=1;
delay_ms(100);
writecomm(0x21); // LCD Extended Commands.
//writecomm(0xC8); // Set LCD Vop (Contrast).
writecomm(0b10000000|mem_contr);
writecomm(0x06); // Set Temp coefficent.
writecomm(0x13); // LCD bias mode 1:48.
writecomm(0b01000101); //Переводим СКРОЛЛИНГ вверх на пол строки - вторая строка = первая на экране
writecomm(0x20); // LCD Standard Commands, Horizontal addressing mode.
writecomm(0x0C); // LCD in normal mode.
Так как впринципе всё одинаково то скорее всего у вас СПИ порт настроен неправильно(не та полярность такта)
Вот моя инициализашка порта СПИ
Код: Выделить всё
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 2*4000,000 kHz
// SPI Clock Phase: Cycle Half
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR=0x50;
SPSR=0x00;
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Re:
sachok писал(а):Здравствуйте! Решил спаять платку для тестов LCD. Сам дисплей планирую питать от 3,3В как по даташиту, есть вопрос по согласованию уровней между МК и дисплеем. Посмотрите пожалуйста прикрепленную схему, можно ли так сделать?
Я делаю проще....я взял на линии данных от мк(который от 5-ти вольт) до LCD поставил килоомные резисторы а питание организовал простым линейником L1117-3.3 нагруженным не только самим LCD а ещё и 200 омным резистором...в сам контроллер уже встроены защитные диоды к питанию в них оно спокойно упирается...а чтоб небыло паразитного питания стабилизатор работает по типу стабилитрона
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
Не доверяйте русским лужам - это может быть вход в метро.
- lerik
- Первый раз сказал Мяу!
- Сообщения: 30
- Зарегистрирован: Вт ноя 14, 2006 16:44:28
- Откуда: Белгород
Re: Дисплей Nokia 3410 (3310)
to clawham:
Я не использую SPI , у меня по другому, все ручками
. Вывод на дисплей работает, все выводит как надо, но только в инверсном виде как будто всегда подана команда 0x0D, а хотелось бы в нормальном виде 0x0С.
В архиве проект для CVAVR и проект для Протеуса.
Такое ощущение что вообще не включаются расширенные (extended) команды.
Может кто подскажет в чем дело?
Я не использую SPI , у меня по другому, все ручками
В архиве проект для CVAVR и проект для Протеуса.
Такое ощущение что вообще не включаются расширенные (extended) команды.
Может кто подскажет в чем дело?
- Вложения
-
- proba.rar
- (30.28 КБ) 498 скачиваний