яж на предыдущей страничке описывал порядок подачи сигналов для инициализации дисплея, попробуйте его.
_________________ Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
приветик всем! Вопрос в студию, заказал недавно диспл wg12864A (part no. WG12864A-CFH-T#N) с RGB подсветкой а теперь когда он пришёл, рву волосы в частности не могу найти на него даташит, с схемой на 22 пина везде на 20 пинов, некто не подскажет что за фигня, как его подключать как посветкой управлять?
У меня точно такой же дисплей недавно появился. С подсветкой там очень здорово сделано - вся обвязка у них уже собрана на плате, потому она управляется чисто логикой. Управляется так: 19-ю ножку сажаешь на +5 и забываешь. 20, 21 и 22 пины - это R, G и B. Подаёшь на ножку 0 и подсветка зажигается. Например, для жёлтого цвета подаешь на 19 +5; на 20 и 21 - 0; 22 - NC или +5. Ну или можно наоборот управлять, хозяин - барин) Пины 1-18 должны быть как в даташите.
Только работать я его пока не заставил(( Кто-нибудь пробовал его согласовывать с 3.3-вольтовой логикой? Я уже дошёл то такого изврата (см. вложение), но он молчит. Да, знаю, что есть специальные микросхемы, но у меня вся кухня на белой макетке, а они все smd. Вроде ещё есть схема с диодом и резитором на каждую ногу, но я так ничего не понял.
Да, кстати, ещё один вопрос: в даташите на сайте Winstar указано, что высокий уровень - это 0, а низкий - это +5, однако в этой статье логические уровни используются стандартные и всё там работает. Кому верить?)
Вложения:
Комментарий к файлу: Попытка согласования 3.3 и 5В power1.png [10.9 KiB]
Скачиваний: 852
/*Функция вывода строки из флеш памяти*/ void LCD_PUTSF(byte x, byte y, flash byte str[]){ byte i=0; xk = textx; yk = texty; //Пока не конец строки выводим символы while(str[i]) { x++; textx = x; texty = y; putc(str[i],in); i++; } textx = xk; texty = yk; } /*Функция которая ресует на экране 1 пиксел*/ void LCD_PUT_PIXEL(byte x, byte y){ //Обьявляем переменные byte bite; byte page; byte data, data2; //Выход если точка лежит вне экрана if((x>127)|(y>63)) return; //Выбираем кристалл if(x>=64){ ClrBit(LCD_COM, LCD_CS1); SetBit(LCD_COM, LCD_CS2); x=x-64; page = 0b00010000; } else{ ClrBit(LCD_COM, LCD_CS2); SetBit(LCD_COM, LCD_CS1); page = 0b00100000; } y/8; x%8; wpixXY(x, y, page);
WriteData(0b00000001, page);
} /*Функция вывода прямой по алгоритму Брезенхома. Подробно ее описывать не буду т.к. по ней лучше почитать в интернете*/ void LCD_LINE(byte x1, byte y1, byte x2, byte y2){ int dx, . . . и так рисуем линию:
В общем погонял я его попробовал, и сказал тфу. если честно его не везде можно использовать, медленный(очень), и те кто задумал делать на нем осциллограф, лучше не надо ничего не увидите на макс, его скорости.
_________________ Мастер на все руки, кручу, кручу, кручу и матерюсь Повелитель паяльной станции, лома, и пинцета!!!
В общем погонял я его попробовал, и сказал тфу. если честно его не везде можно использовать, медленный(очень), и те кто задумал делать на нем осциллограф, лучше не надо ничего не увидите на макс, его скорости.
Вы бы тогда еще конкретные цифры привели. Какую максимальную скорость прорисовки экрана удалось получить? а скорость вывода 1 байта? да не плохо бы еще и свои исходники показать для этих случаев.
это есть в даташите и этих скоростей добился, еще если взять врямя на чтение, то дольще так что без чтения статуса прорисовка медленная, пробывалось все это на готовых данных которые не надо получать и читать....... , а если взять, на T6963 с чтением статуса, то его скорость явно превышает в несколько раз, несмотря на то что его временные задержки в 1,5 раза ниже.
_________________ Мастер на все руки, кручу, кручу, кручу и матерюсь Повелитель паяльной станции, лома, и пинцета!!!
я анимировонную картинку на этот индикатор выводил. скорости его для быстрого вывода явно нехватет, а как статический индикатор, он очень даже хорош
_________________ Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
воть воть а люди на нем осцылы делают, а другие удивляются я тут дrлал недавно под усилитль был сильно удивлен скорости контролера HD44780 весчь http://www.youtube.com/watch?v=mEDGD_PjpcA
_________________ Мастер на все руки, кручу, кручу, кручу и матерюсь Повелитель паяльной станции, лома, и пинцета!!!
Здравствуйте! Купил дисплей wg12864c, с контроллером NT7608, с ks даташиты полностью совпадают. подключил все, провожу инициализацию по инструкции на 8 странице - дисплей не темнеет. Перепробовал уже все возможные варианты, с разными задержками... при опросе дисплея показывает только статус сброса, при этом корректно, т.е. что на ноге сброса - то от и возвращает. при этом бит on/off всегда в нуле равно как и бизи. Расскажите пожалуйста по порядку для чего каждая строка инициализации? То есть для чего его несколько раз сбрасывать при установке cs и rs, rw??? длительные задержки как то влияют на чтение команд? то есть если я между 1 и 0 на Е делаю задержку аж целых 20 миллисекунд он это скушает??? Какие у вас были проблемы при запуске дисплея и как вы их решали??? контраст подключен и работает. Подсветка не подключена.
Хм, заметил что он в ответ всегда возвращает то, что я ему только что отправил... Может ли быть проблема в подключении?? Могут ли там быть какие то паразитные емкости которые мешают спаду 1 в 0???? Я подключал напрямую выводы контроллера к дисплею. Может надо через резистор или посадить все ноги через резистор на землю что бы разряжались?
Спасибки что подсказали немного потужился немного разобрался.. но все таки графику не рисует
/*Функция которая ресует на экране 1 пиксел*/ void LCD_PUT_PIXEL(byte x, byte y){ //Обьявляем переменные byte bite, page, data = INV, data2;
if((x>127)|(y>63)) return;// Выход если точка лежит вне экрана
if(x>=64){ x = x - 64; data2 = 0b00010000;} else{data2 = 0b00100000;} //Выбираем кристалл
page = y/8; //page-номер страницы bite = y%8; //bite-Номер байта который нам предстоит вывести
WriteXY(x, page, data2); // координаты вывода информации на LCD.
//Читаем байт с LCD(2 цикла т.к. в первом мусор) //data = ReadData(); //???????? //data = ReadData();
data = data |(1<<bite); WriteXY(x, page, data2); WriteData(data, data2);
}
как я понял проблема с //data = ReadData(); функция не работает если раз комментировать рисует два квадратика и полоску и нефига больше. в таком виде теряется часть пикселов (затераються)..
На сайте MCS Electronics есть интересный для меня проект AN #148 - LCD display with touchscreen and AVR. Подскажите пожалуста кто знает тип дисплея с функцией тачскрин-а на базе контроллера KS0108.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения