Форум РадиоКот https://radiokot.ru/forum/ |
|
LCD https://radiokot.ru/forum/viewtopic.php?f=20&t=23120 |
Страница 1 из 3 |
Автор: | sun [ Ср дек 09, 2009 17:41:11 ] |
Заголовок сообщения: | LCD |
Дорогие коты, Прошу опять вашей помощи. видел темы про LCD от мобилок, некоторые писали, что запускали от сименсов А52, но схем и распиновок не прилагали. Может у кого-то есть какая инфа по экрану от А52 и желательно ещё от С35. Буду блпгодарен за помощь. |
Автор: | >TEHb< [ Ср дек 09, 2009 20:56:08 ] |
Заголовок сообщения: | |
попробуй поразнюхать вооот тут, столькостраниц, вроде должет был обсуждаться. |
Автор: | sun [ Чт дек 10, 2009 18:37:48 ] |
Заголовок сообщения: | |
Спасибо за сцылку, тама сказано, что дисплей такй же, как и нокиевский, только инициальзация у него другая. И проект на кодвижн. Т.к. я пишу на винавр - пришлось переделывать, но как-то он не запустился вовсе ![]() |
Автор: | Mamonth [ Пт дек 11, 2009 04:21:59 ] |
Заголовок сообщения: | |
Собственно я бы взял проект на кодевижн зашил в МК, убедился в правильности подключения (и совпадении с той прошивкой что на CV). Запустил. Если заработает, то начал переписывать либу. А вообще желательно найти даташит на контроллер дисплея и поковырять его. |
Автор: | sun [ Вс дек 13, 2009 23:48:02 ] |
Заголовок сообщения: | |
Да не написано на нём никаких опозновательных знаков ![]() |
Автор: | sun [ Вт дек 15, 2009 10:22:28 ] |
Заголовок сообщения: | |
вроде кое как его заставил что-то отрисовывать. как доделаю - выложу код. вопросик такой возник. если я его просто вырубаю, частенько загарается одна полоска и тухнет через несколько секунд. как его правильно обесточивать? ведь на телефоне, если просто вытащить акум, он просто и гаснет. |
Автор: | neonix [ Вт дек 15, 2009 22:49:43 ] |
Заголовок сообщения: | |
sun писал(а): вроде кое как его заставил что-то отрисовывать. как доделаю - выложу код.
вопросик такой возник. если я его просто вырубаю, частенько загарается одна полоска и тухнет через несколько секунд. как его правильно обесточивать? ведь на телефоне, если просто вытащить акум, он просто и гаснет. Нужно искать последовательность для выключения, обычно в даташите всегда есть даже в урезаном варианте. Но честно говоря у меня дисплей с вот таким вот методом отключения за 3 месяца не сдох, так что думаю разницы особой нету. |
Автор: | sun [ Чт дек 17, 2009 02:02:12 ] | ||
Заголовок сообщения: | |||
Всем доброй ночи и валерьяночки )) Как и обещал - выкладываю самописную либу для эрана от С55 сименса. Думаю, у многих валяется без дела )). Либа для WinAVR, но думаю месные котохакеры быстро её переделают под CV ))))) Код тестовой программы: Код: int main (void) { lcd_Init(); lcd_Contrast(0x40); lcd_GoToXY(0, 0); lcd_PutStr("_SuN_ (R)\0"); lcd_GoToXY(2, 3); lcd_PutStr("Siemens A52/C52/C55\0"); lcd_GoToXY(10, 5); lcd_PutStr("testing firmware\0"); char a = 0xFF; while (1) { lcd_GoToXY(0, 4); for (char y = 0; y < 102; y++) { lcd_Send(a, LCD_DATA); _delay_ms(10); } a ^=0xFF; } return 0; } Зашито всё AVR Prog программатором от Проттосса, за что ему огромное спасибо )) Если есть вопросы - обращайтесь )) PS. Дисплей можно питать от самого контроллера (смотрите мой корявый ангиццкий в *.h) и SPI(если я не ошибся в названии интерфейса) сделал программный, так что можно вешать на любой порт. ![]()
|
Автор: | sun [ Чт дек 17, 2009 13:06:57 ] |
Заголовок сообщения: | |
Проснулся, посмотрел в код, подумал.... вспомнил вчерашнее и загрустил... На простеньких мегах памяти всего 1К а шрифт кушает 450 байт из них... надо как-то на плятку с дисплеем прикрутить памяти с шрифтами... вот только немогу додумать как обозначить массив, который будет указывать на внешнюю память, да ещё и с интерфейсом SPI... У кого есть какие мысли по этому поводу? |
Автор: | Mamonth [ Чт дек 17, 2009 13:35:39 ] |
Заголовок сообщения: | |
sun писал(а): Проснулся, посмотрел в код, подумал.... вспомнил вчерашнее и загрустил...
На простеньких мегах памяти всего 1К а шрифт кушает 450 байт из них... надо как-то на плятку с дисплеем прикрутить памяти с шрифтами... вот только немогу додумать как обозначить массив, который будет указывать на внешнюю память, да ещё и с интерфейсом SPI... У кого есть какие мысли по этому поводу? А что хранение массивов в памяти программ уже отменили?? ![]() |
Автор: | sun [ Чт дек 17, 2009 13:54:50 ] |
Заголовок сообщения: | |
Mamonth писал(а): sun писал(а): Проснулся, посмотрел в код, подумал.... вспомнил вчерашнее и загрустил... На простеньких мегах памяти всего 1К а шрифт кушает 450 байт из них... надо как-то на плятку с дисплеем прикрутить памяти с шрифтами... вот только немогу додумать как обозначить массив, который будет указывать на внешнюю память, да ещё и с интерфейсом SPI... У кого есть какие мысли по этому поводу? А что хранение массивов в памяти программ уже отменили?? ![]() эммм.... а как это сделать.... точнее как его объявить можете примерчик? пусть массив: char abc[] = {'a', 'b', 'c'} как его держать в области кода? |
Автор: | Mamonth [ Пт дек 18, 2009 10:11:32 ] |
Заголовок сообщения: | |
Курить начинать здесь http://kazus.ru/forums/showthread.php?t=6401&page=2 |
Автор: | sun [ Вт дек 22, 2009 18:40:10 ] |
Заголовок сообщения: | |
Спасибо всем за ответы... Разобрался, сделал, теперь всё более компактно. Новую версию библиотеки скоро положу. ВОзник новый вопрос и новая либа назревает... Вод индикатор заставил работать, как бы к этому индикатору теперь сд-ром прикрутить... Те проекты что есть - написаны на асме с вбитыми командами в код, пока пытался парсить глазами... извилину подвернул... Дорогие други, не могли бы вы поделиться системой команд сд-рома, таких как плей стоп и тому подобной нечисти, а то помру от мышлений.... |
Автор: | GRAF [ Ср янв 06, 2010 01:06:04 ] | ||
Заголовок сообщения: | |||
Тоже с этим дисплеем играюсь, на дозиметр его приспособил. Дописал в библиотеку русских букв и саму функцию вывода пришлось подкорректировать, не понимает CVAVR русский язык. Ещё и русский алфавит пришлось прописать, через код ASCII нихрена не работает. Код: void lcd_PutChar(char c) { char i=0; for (i=0; ABC[i]!=0;i++) { if(c==ABC[i]) { c=128+i; } } for (i = 0; i < 5; i++) lcd_Send(LCD_FONT[c - 32][i], LCD_DATA); } Код: char ABC[]="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
![]()
|
Автор: | sun [ Ср янв 06, 2010 11:29:01 ] |
Заголовок сообщения: | |
За русский шрифт спасибо. Я ещё выложу, времени небыло. Так шрифт гранится в оперативке, которой и так мало, я сделал, что бы он помещался в область кода. А по хорошему надо внешнюю память прилепить и контроллер типа 2313. Там можно и управление по всем протоколам сделать и автоматическую инициальзацию. Но до этого пока что руки не дошли... |
Автор: | GRAF [ Ср янв 06, 2010 14:23:57 ] |
Заголовок сообщения: | |
Он сейчас во флешке хранится, 8 кб мало? ![]() |
Автор: | sun [ Ср янв 06, 2010 17:41:03 ] |
Заголовок сообщения: | |
если говорить о небольших контроллераз, типа, тини, то мало.... код надо пихать а оно 256*5 и того не влезло в отведённые 2К )) а про аски - посмотри, какие оно коды передаёт в русском варианте... (функция itoa) и вообще в CV не совсем стандарт С ((( мне самомму визарды там понравились, но увы |
Автор: | GRAF [ Ср янв 06, 2010 21:03:25 ] |
Заголовок сообщения: | |
Да мне проще свою функцию написать, чем разбираться, какие там кодировки. А что itoa? Она число в строку преобразует. Её тоже использовал для подстановки значения фона в lcd_PutStr(). |
Автор: | sun [ Чт янв 07, 2010 01:27:36 ] |
Заголовок сообщения: | |
Функцию, может, написать и проще, но она памяти больше займёт ))) может там просто не со 128 начинается, а со 160? и тогда ты освободишь память под массив и не будет этого прогона в цикле перед отрисовкой )) ЗЫ твой код char ABC[]="АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя\0"; ------ ты проверяешь на ноль, а далее может быть прошивка и на дисплее будет чёрт знает что)) в конце обязательно "\0" |
Автор: | GRAF [ Чт янв 07, 2010 02:17:01 ] |
Заголовок сообщения: | |
Может и со 160, а может там вообще русские буквы в юникоде или вин-1251 или койка какая-нибудь... sun, прошивка не в стрингах записана, поэтому ничего страшного. |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |