|
|
  |
AVR и Siemens M55 |
|
|
|
Oct 28 2008, 12:38
|
Группа: Новичок
Сообщений: 13
Регистрация: 27-08-07
Пользователь №: 30 086

|
Всем доброго времени суток! Прочитал все 52 страницы ветки, много полезного узнал. У меня такая вот проблема. Подключил ls020 к Меге8. Пишу в CV. Использую библиотеку, которую выкладывали где то в середине ветки. Питаю и мегу и дисплей от 3в. Инициализация проходит на 100% каждый раз, функция заливки работает на ура только с черным и белым цветом...Остальные цвета совсем другие, и заполняет полоскаами через один пиксель, цвета совсем не те..Функция вывода символа тоже не работает-вместо шрифта выводит какой то мусор просто. Функции линии, прямоугольника нормально работают, только цвета все равно другие. Вот на картинке пример-заливаю весь дисплей красным цветом а в углу вывод строки из 5 символов. Видно что заливка как-бы черезстрочная. Что делать? В чем проблема? Библиотека в приложении
Сообщение отредактировал k34Nex - Oct 28 2008, 12:43
Эскизы прикрепленных изображений
Прикрепленные файлы
disp.rar ( 2.68 килобайт )
Кол-во скачиваний: 116
|
|
|
|
|
Oct 28 2008, 13:18
|
Частый гость
 
Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064

|
void spi_send0(u08 dat) { spi(dat); spi(0x00); } а зачем 0 вдогонку посылать? .. //передаём 0xFF 0xB6B1 раз(если кол-во раз равно 0xB580,как по Using_the_Siemens_S65.pdf,экран заполняется не полностью??) .. все правильно заполняется, только у вас не 177 на 133 точки экран, поэтому поставьте чуть выше этих строк 175 и 131 (0...175,0..131)... Код и ldi r31, 0xB6 ldi r30, 0xB1 ldi r24, 0xFF LCD_CLEAR_1: rcall lcd_wrdata sbiw r30,1 brne LCD_CLEAR_1 pop r31 pop r30 ret lcd_wrcmd: cbi 0x18,0 sbi 0x18,7 rjmp SPI_SEND lcd_wrdata: cbi 0x18,0 cbi 0x18,7 SPI_SEND: sbi 0xd,7 // set bit spe----spi enable out 0xf,r24 // из r24 переносим в SPDR SPI_SEND_0: sbis 0xe,7 // если бит SPIF установлен,не выполняем след.строку, иначе циклимся rjmp SPI_SEND_0 in r0,0xf sbi 0x18,0 //deselect display ret замените СИ-шным эквивалентом для проверки... p.s. и где main ?
Сообщение отредактировал Cyber_RAT - Oct 28 2008, 13:56
|
|
|
|
|
Oct 28 2008, 13:48
|
Группа: Новичок
Сообщений: 13
Регистрация: 27-08-07
Пользователь №: 30 086

|
Даж не знаю) Но все равно это никак не влияет, это функция отправки одного байта по spi она не используется даже... проблема остается открытой это просто библиотека, а main в главном с файле, просто использует функции библиотеки. На счет Цитата //передаём 0xFF 0xB6B1 раз(если кол-во раз равно 0xB580,как по Using_the_Siemens_S65.pdf,экран заполняется не полностью??) .. все правильно заполняется, только у вас не 177 на 133 точки экран, поэтому поставьте чуть выше этих строк 175 и 131 (0...175,0..131)... и ldi r31, 0xB6 ldi r30, 0xB1 ldi r24, 0xFF LCD_CLEAR_1: rcall lcd_wrdata sbiw r30,1 brne LCD_CLEAR_1 pop r31 pop r30 ret lcd_wrcmd: cbi 0x18,0 sbi 0x18,7 rjmp SPI_SEND lcd_wrdata: cbi 0x18,0 cbi 0x18,7 SPI_SEND: sbi 0xd,7 // set bit spe----spi enable out 0xf,r24 // из r24 переносим в SPDR SPI_SEND_0: sbis 0xe,7 // если бит SPIF установлен,не выполняем след.строку, иначе циклимся rjmp SPI_SEND_0 in r0,0xf sbi 0x18,0 //deselect display ret замените СИ-шным эквивалентом для проверки... ничего не понял, asm вообще не имею понятия))
|
|
|
|
|
Oct 28 2008, 14:06
|
Группа: Новичок
Сообщений: 13
Регистрация: 27-08-07
Пользователь №: 30 086

|
Все функции,инициализация,очистка,вывод символа,закраска, все находится в этой библиотеке! В основном си-файле у меня просто #include disp.lib void main(void){ lcd_init(); fill_screen(red); lcd_str_fl("HELLO",1,black); } Вот весь проект на CV.
Прикрепленные файлы
2.rar ( 74.98 килобайт )
Кол-во скачиваний: 150
|
|
|
|
|
Oct 28 2008, 16:52
|
Группа: Новичок
Сообщений: 13
Регистрация: 27-08-07
Пользователь №: 30 086

|
Заменил, прошил-никаких изменений, так же через один и тем же цветом, не красным а каким то светло синим. Где то видел команду поменять местами синий и красны-может поможет?...хотя и зеленый выводится совсем не зеленым..и что делать с полосками этими, и со шрифтами? Вместо заливки написал такой код-вывожу 6 разноцветных прямоугольников закрашеных,цвета есть в коде. То, что выводит дисплей-на фотке. Цвета неяркие, т.к. подсветка вполяркости, но видно ясно что цвета совсем не те, кроме белого,зато заполняется каждый пиксель, в отличии от функции заливки...и все так не могу вывести нормально символы.. Код для прямоугольников мой //lcd_fillrect(X1, Y1, X2, Y2,color); lcd_fillrect(0, 00, 132, 30,white); lcd_fillrect(0, 30, 132, 60,red); lcd_fillrect(0, 60, 132, 90,green); lcd_fillrect(0, 90, 132, 120,blue); lcd_fillrect(0, 120, 132, 150,orange); lcd_fillrect(0, 150, 132, 176,sky);
Сообщение отредактировал k34Nex - Oct 28 2008, 16:59
Эскизы прикрепленных изображений
|
|
|
|
|
Oct 28 2008, 19:55
|

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

|
Цитата(k34Nex @ Oct 28 2008, 19:52)  Заменил, прошил-никаких изменений, так же через один и тем же цветом, не красным а каким то светло синим. Где то видел команду поменять местами синий и красны-может поможет?...хотя и зеленый выводится совсем не зеленым..и что делать с полосками этими, и со шрифтами?
Вместо заливки написал такой код-вывожу 6 разноцветных прямоугольников закрашеных,цвета есть в коде. То, что выводит дисплей-на фотке. Цвета неяркие, т.к. подсветка вполяркости, но видно ясно что цвета совсем не те, кроме белого,зато заполняется каждый пиксель, в отличии от функции заливки...и все так не могу вывести нормально символы.. Код для прямоугольников мой //lcd_fillrect(X1, Y1, X2, Y2,color); lcd_fillrect(0, 00, 132, 30,white); lcd_fillrect(0, 30, 132, 60,red); lcd_fillrect(0, 60, 132, 90,green); lcd_fillrect(0, 90, 132, 120,blue); lcd_fillrect(0, 120, 132, 150,orange); lcd_fillrect(0, 150, 132, 176,sky); Проблема точно в инициализации,когда перебирал в ней биты был и такой случай. В место 0x4952 замените на 0x4902
--------------------
|
|
|
|
|
Nov 3 2008, 09:39
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 14-06-06
Из: Могилев
Пользователь №: 18 059

|
TO Juras Pr. Вы когда-то писали: Я было дело начал документ рисовать, где описываются регистры, но некоторые я не могу корректно описать, особенно те, которые строки решёткой сдвигают, будто сведение в старом телевизоре. Есть регистр, который на контраст влияет, а есть который на скорость обновления экрана...
Очень интересуюсь настройкой контраста, не могли бы Вы выложить свои наработки по LS020? Все сообщество будет Вам очень признательно. Сам я составил табличку с известными и проверенными командами, собрался выложить, но оказалось забыл ее на домашнем компе, выложу через недельку.
Может кто нашел как работать со станицами/банками? Что бы записал в одну страницу, вывел на экран, в это время пишешь в другую страницу, выводишь на экран 2-ую, 1-ую..., 2-ую... С буфером в RАМ все понятно, а вот бы аппаратные средства...
|
|
|
|
|
Nov 4 2008, 13:33
|
Группа: Новичок
Сообщений: 2
Регистрация: 4-11-08
Пользователь №: 41 366

|
Здравствуйте. Давно читаю эту тему и очень вам благодарен за информацию, которую тут собрали. Недавно запустил LCD от 3310, на него есть даташит и проблем не возникло: http://s52.radikal.ru/i135/0811/5e/33ea2a78d876.jpg 46 Кб Также подключил дисплей от CX65 LS020 к LPT порту компа, питание, кроме подсветки, тоже брал с него: http://s61.radikal.ru/i174/0811/c2/0a18a7bd3b89.jpg 60 Кб Заливка всего экрана занимает несколько секунд, но зато удобнее крутить регистры, правда пока ничего кроме того что тут уже описано не нашёл. А вот буквально вчера стал обладателем самсунга Х820, точнее того что от него осталось, и не смотря на то что корпус был сломан пополам дисплей вроде целый. Вот нашёл схему его подключения из схемы телефона: http://s47.radikal.ru/i118/0811/d7/fe832959953a.gif 20 Кб Судя по ней дисплей имеет свою видеопамять и контроллер, т.к. нет обычных для безконтроллерных дисплеев сигналов. Информации про то какой там контроллер у меня нет, поэтому если кто что знает поделитесь пожалуйста. Ещё есть камера от него, про неё тоже никакой информации кроме схемы подключения. Кстати подсветка клавиатуры в этом телефоне не светодиодная а электролюминисцентная, никогда такого не видел.
|
|
|
|
|
Nov 4 2008, 17:05
|
Частый гость
 
Группа: Участник
Сообщений: 92
Регистрация: 1-06-08
Пользователь №: 37 959

|
Цитата(kernel @ Nov 2 2008, 12:42)  Еще интересует максимальный ток потребления TFT S65  До 3мА в активном режиме во время записи. А в спящем режиме (более подробно - у немцев) - меньше 1мА.
|
|
|
|
|
  |
10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0
|
|
|