реклама на сайте
подробности

 
 
87 страниц V  « < 22 23 24 25 26 > »   
Reply to this topicStart new topic
> AVR и Siemens M55
lomtev
сообщение Aug 31 2007, 21:21
Сообщение #346


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Доброго времени суток.
Никто не сталкивался ли со следующей проблемой с LS020.
После инициализации заливаю весь экранчик цветом А, жду двацать милисекунд и пытаюсь залить через ту же функцию но цветом Б и он не хочет. Но перед этим я пытался залисть область следующим образом:

#define cmd 1
#define dat 0

void lcd_pset(char x , char y , int color_line)
{
lcd_write(cmd, 0xEF90);
lcd_write(cmd, 0x0800);
lcd_write(cmd, 0x0985);
lcd_write(cmd, 0x0A00);
lcd_write(cmd, 0x0B85);
lcd_write(dat, 0x000A);

}

Если глаз не замылен то еще

void lcd_write(char datcom, int word) //Запись байта
{
LCD_CS=0;
if(datcom & 1) LCD_RS=1; else LCD_RS=0;
LCD_SCK=0;if (word & 32768) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16384) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8192) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4096) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2048) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1024) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 512) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 256) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 128) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 64) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 32) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_CS=1;
}

Так вот. Первая заливка через

lcd_write(cmd,0xEF90);
lcd_write(cmd,0x0500);
lcd_write(cmd,0x0600);
lcd_write(cmd,0x0700);

for (i=0; i<DISP_W*DISP_H; i++) lcd_write(dat,color);

Один раз идет на ура. Повторно не хочет.
Позле первой зааливки не хочет выделяться даже область.
Может кто подскажет? Заранее огромное спасибо.
Go to the top of the page
 
+Quote Post
satellite-plus
сообщение Sep 1 2007, 09:48
Сообщение #347


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 8-01-07
Из: Одесса
Пользователь №: 24 196



Цитата(lomtev @ Sep 1 2007, 00:21) *
Доброго времени суток.
Никто не сталкивался ли со следующей проблемой с LS020.
После инициализации заливаю весь экранчик цветом А, жду двацать милисекунд и пытаюсь залить через ту же функцию но цветом Б и он не хочет. Но перед этим я пытался залисть область следующим образом:

#define cmd 1
#define dat 0

void lcd_pset(char x , char y , int color_line)
{
lcd_write(cmd, 0xEF90);
lcd_write(cmd, 0x0800);
lcd_write(cmd, 0x0985);
lcd_write(cmd, 0x0A00);
lcd_write(cmd, 0x0B85);
lcd_write(dat, 0x000A);

}

Если глаз не замылен то еще

void lcd_write(char datcom, int word) //Запись байта
{
LCD_CS=0;
if(datcom & 1) LCD_RS=1; else LCD_RS=0;
LCD_SCK=0;if (word & 32768) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16384) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8192) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4096) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2048) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1024) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 512) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 256) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 128) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 64) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 32) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 16) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 8) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 4) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 2) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_CS=1;
}

Так вот. Первая заливка через

lcd_write(cmd,0xEF90);
lcd_write(cmd,0x0500);
lcd_write(cmd,0x0600);
lcd_write(cmd,0x0700);

for (i=0; i<DISP_W*DISP_H; i++) lcd_write(dat,color);

Один раз идет на ура. Повторно не хочет.
Позле первой зааливки не хочет выделяться даже область.
Может кто подскажет? Заранее огромное спасибо.


Попробуй

void clr_scr(void)
{
word i;
sendCMD(0xEF90);
sendCMD(0x0500);
sendCMD(0x0800);
sendCMD(0x0984);// 09xx xx- длина
sendCMD(0x0A00);
sendCMD(0x0BAF);
for (i=0;i<132*178;i++) sendDATA(0);
}


--------------------
Опыт - это та чудесная штука, которая позволяет вам узнать ошибку, когда вы ее повторите.
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 1 2007, 10:55
Сообщение #348


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(satellite-plus @ Sep 1 2007, 13:48) *
Попробуй

void clr_scr(void)
{
word i;
sendCMD(0xEF90);
sendCMD(0x0500);
sendCMD(0x0800);
sendCMD(0x0984);// 09xx xx- длина
sendCMD(0x0A00);
sendCMD(0x0BAF);
for (i=0;i<132*178;i++) sendDATA(0);
}

Нет не работает. Я думаю что здесь вопрос не в том какие команды, они то верные, у меня есть подозрение что все дело в дерганье LCD_CS. Но все равно после отправки данных в функцию lcd_write, LCD_CS передергивается из высокого в низкое, после концовки отправки LCD_CS остается в высоком до следующей команды, после отправки следующей команды опять вниз. Вроде должно все работать. Но может надо дернуть пару раз на пустом RS и DATA или RESET?
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 1 2007, 18:45
Сообщение #349


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



В моем случае явно не хватает какой-то команды типа 0x0800. Потому как попробывал заливать экран через область а не полностью, заливается чудесно и целиком и областью... но только один раз. что за хня не пойму.
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 1 2007, 20:56
Сообщение #350


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Спасибо. Все заработало. В прошивке был косяк. Вроде все работает, но все равно как-то криво.
Go to the top of the page
 
+Quote Post
sadat
сообщение Sep 8 2007, 14:17
Сообщение #351


Частый гость
**

Группа: Свой
Сообщений: 117
Регистрация: 6-07-05
Из: Белгород
Пользователь №: 6 575



Извини, что не сразу отвечаю, но в процедуре отправки слова на дисплей у тебя отсутствует команда сброса строба в ноль

Цитата
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_CS=1;


Надо так:
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;LCD_CS=1;

Скорее всего в этом и есть проблема, когда последний бит в слове равен "1" - посылка "сливается" со всякими глюками......
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 10 2007, 19:08
Сообщение #352


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(sadat @ Sep 8 2007, 18:17) *
Извини, что не сразу отвечаю, но в процедуре отправки слова на дисплей у тебя отсутствует команда сброса строба в ноль
Надо так:
LCD_SCK=0;if (word & 1) LCD_DAT=1;else LCD_DAT=0;LCD_SCK=1;
LCD_SCK=0;LCD_CS=1;

Скорее всего в этом и есть проблема, когда последний бит в слове равен "1" - посылка "сливается" со всякими глюками......


Глюки были из-за несоответствия типов переменных, я к команде int добавлял значения координат char, знаю что идиотский промах но бывает иногда. Когда исправил все фигуры стали выводиться соответственно. Но вот наткнулся на странную проблему, решение и причину которой понять не могу. Написал следующий цикл:

for(j=0;j<176;j++)
{
if(j<=131){
lcd_pset(0x0000,j,j,0xF800);
lcd_pset(j,0x0084,j,0x07E0);
}
else{
k=262-j;
lcd_pset(0x0000,k,j,0xF800);
lcd_pset(k,0x0084,j,0x07E0);
}
}

Не работало, доходило до определенной степени и останавливалось. Я стал подбирать значения 131 и 262. Вот что вышло:


for(j=0;j<176;j++)
{
if(j<124){
lcd_pset(0x0000,j,j,0xF800);
lcd_pset(j,0x0084,j,0x07E0);
}
else{
k=246-j;
lcd_pset(0x0000,k,j,0xF800);
lcd_pset(k,0x0084,j,0x07E0);
}
}

Если брать больше 124 или 246 - не работает, а так все пашет прилично но не до конца экрана, 7-8 pix не дотягивает. Все данные объявлены в int. Цвет второй линии заливается до 131 полностью, именно не строится до конца только вершина треугольника (первая линия).
Кто занает?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Aseris
сообщение Sep 18 2007, 22:15
Сообщение #353





Группа: Новичок
Сообщений: 1
Регистрация: 18-09-07
Пользователь №: 30 649



Приветствую всех, вот выковырял дисплей из полудохлого сименс А65 такой же как и в М55, порылся в нете порылся на форуме, но так и не нащел на ето детище хоть какойто вразумительной подсказки 101Х80 пикселей на 12бит цвета (4096 цветов), SPI интерфейс (который, о птичках, может работать по шинной топологии если девайсы не кривые - выбираются сигналом CS - ет к вопросам о 2-3 SPI), на пластмаске дисплея написано LM15SGFNZ07 на самом контроллере DJ440118, ткните фейсом если гдето чето неувидел, или подскажите как по етому - DJ440118 - понять какой ето контроллер и как с ним общатся???

Сообщение отредактировал Aseris - Sep 18 2007, 22:18
Go to the top of the page
 
+Quote Post
iDenis
сообщение Sep 24 2007, 12:39
Сообщение #354


Участник
*

Группа: Новичок
Сообщений: 29
Регистрация: 1-08-06
Из: St.-Petersburg, China
Пользователь №: 19 243



Всплыл у меня один документ по LS020B8UD06, согласно которому контакт питания 1.8В не используется. (я в это потенциально верю....когда читал выше о том, что вместо 1.8 подают 3-3.3... жуткий сон... вывод просто пуст...)

Напряжение питания лсд 2.9В (мин. 2.8В до макс. 3В).... т.е. подойдут часто используемые стабилизаторы на 2.85В и 3В...

Я счас адаптер подключения LS020B8UD06 развожу себе... чтобы лишнего не разводить...
у кого LS020B8UD06... проверьте плз. необходимость питания 1.8....
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
С Уважением, Денис.
Go to the top of the page
 
+Quote Post
Itch
сообщение Sep 24 2007, 13:10
Сообщение #355


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Нету там на LS020 1.8V. Там пустой пад, никуда не подключенный.
Go to the top of the page
 
+Quote Post
lomtev
сообщение Sep 24 2007, 13:27
Сообщение #356


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 22-08-07
Пользователь №: 29 980



Цитата(iDenis @ Sep 24 2007, 16:39) *
Всплыл у меня один документ по LS020B8UD06, согласно которому контакт питания 1.8В не используется. (я в это потенциально верю....когда читал выше о том, что вместо 1.8 подают 3-3.3... жуткий сон... вывод просто пуст...)

Напряжение питания лсд 2.9В (мин. 2.8В до макс. 3В).... т.е. подойдут часто используемые стабилизаторы на 2.85В и 3В...

Я счас адаптер подключения LS020B8UD06 развожу себе... чтобы лишнего не разводить...
у кого LS020B8UD06... проверьте плз. необходимость питания 1.8....

От меня чуток... Лень мне было уровни согласовывать и у меня лог единица это пять воль и там где должно быть макс 2.9 у меня 4.1 Вольта. Включаю я обычно минут на пять максимум. как раз из-за этих вольт боялся, да и в принципе мне больше и не надо... так заценить прошивку.. но как-то забыл выключить и пошел гулять, прихожу а он откработал четыре часа и хоть бы хрен....ТАк что черт знет о этих максималльных 3 Вольтах.... 07.gif
Go to the top of the page
 
+Quote Post
Shadow_ru
сообщение Sep 26 2007, 13:12
Сообщение #357





Группа: Новичок
Сообщений: 8
Регистрация: 23-08-06
Пользователь №: 19 755



Вот тут
http://forum.lcdinfo.com/viewtopic.php?t=2336
человек осилил 22 fps, вроде без фликера.
Исходник там есть.
Go to the top of the page
 
+Quote Post
yarunt
сообщение Sep 26 2007, 16:33
Сообщение #358


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Цитата(iDenis @ Sep 24 2007, 15:39) *
Всплыл у меня один документ по LS020B8UD06, согласно которому контакт питания 1.8В не используется. (я в это потенциально верю....когда читал выше о том, что вместо 1.8 подают 3-3.3... жуткий сон... вывод просто пуст...)

Напряжение питания лсд 2.9В (мин. 2.8В до макс. 3В).... т.е. подойдут часто используемые стабилизаторы на 2.85В и 3В...

Я счас адаптер подключения LS020B8UD06 развожу себе... чтобы лишнего не разводить...
у кого LS020B8UD06... проверьте плз. необходимость питания 1.8....

А как бы у вас узнать ссылочку на документик! Хочется посмотреть есть ли описание всех регистров контроллера. У немцев мало инфы на регистры.


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
011119xx
сообщение Sep 27 2007, 03:32
Сообщение #359


Местный
***

Группа: Свой
Сообщений: 381
Регистрация: 5-07-05
Из: Уфа
Пользователь №: 6 544



Там нет описания регистров
Go to the top of the page
 
+Quote Post
dspy
сообщение Oct 5 2007, 04:52
Сообщение #360


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 5-03-07
Пользователь №: 25 880



доброе время суток!
есть ли у кого модель дисплея s65 под proteus? поделитесь пожалуйста
заранее благодарен
Go to the top of the page
 
+Quote Post

87 страниц V  « < 22 23 24 25 26 > » 
Reply to this topicStart new topic
17 чел. читают эту тему (гостей: 17, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 15:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01494 секунд с 7
ELECTRONIX ©2004-2016