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

 
 
87 страниц V  « < 40 41 42 43 44 > »   
Reply to this topicStart new topic
> AVR и Siemens M55
dENIM
сообщение May 10 2008, 09:08
Сообщение #616


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137



попробуйте при неизменной программе поставить меньше кварц. Это хоть и похоже на танцы с бубном, но мне помогло.
Go to the top of the page
 
+Quote Post
ZiB
сообщение May 10 2008, 17:20
Сообщение #617


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Не понял меня, попробуй заполнить часть экрана (допустим 100 точек) одним цветом потом эту же часть другим цветом, через некоторое время (пришли код)
попробуй паузу поставить после инициализации
Код
void lcd_init()
{
unsigned char i;
for (i=0;i<2;i++)
{
lcd_cmd(init1[i]);
}
delay_ms(50);
for (i=0;i<10;i++)
{
lcd_cmd(init2[i]);
}
delay_ms(7);
for (i=0;i<20;i++)
{
lcd_cmd(init3[i]);
}
delay_ms(30);
for (i=0;i<3;i++)
{
lcd_cmd(init4[i]);
}
delay_ms(30);
}
Go to the top of the page
 
+Quote Post
ведущий_специали...
сообщение May 10 2008, 17:32
Сообщение #618


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 24-11-07
Пользователь №: 32 645



Скорее всего дело в задержках при инициализации.А еще стоит проверить процедуру ожидания окончания посылки байта в SPI канал,если таковая имеется.
Go to the top of the page
 
+Quote Post
anaconda
сообщение May 11 2008, 17:04
Сообщение #619


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-11-07
Пользователь №: 32 418



Попробовал заливать по 1000 точек, ничего не изменилось - первая заливка проходит удачно, при следующей дисплей виснет. В редких случаях, заливка может идти достаточно долго(пока не отключишь питание) попеременно разными цветами. После повторного включения картина повторяется - дисплей зависает. Исходник прилагается.
Прикрепленные файлы
Прикрепленный файл  atmega32.zip ( 2.09 килобайт ) Кол-во скачиваний: 108
 
Go to the top of the page
 
+Quote Post
Cyber_RAT
сообщение May 12 2008, 04:37
Сообщение #620


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

Группа: Свой
Сообщений: 162
Регистрация: 7-12-07
Из: Могилев
Пользователь №: 33 064



попробуй заливать устанавливая координаты окна командами:
// задай размер окна
lcd_cmd(0xEF90);
lcd_cmd(0x0500);
lcd_cmd(0x0800 | 0);
lcd_cmd(0x0A00 | 0);
lcd_cmd(0x0900 | 132); <- тут 131 для всего экрана
lcd_cmd(0x0B00 | 176); <- тут 175 для всего экрана (0-131, 0-175)
а потом не надо ef90, 0500 0600 0700 команд, просто начинай заполнять экран.

p.s. экран на длинных проводах болтается? (через делители или все от 3.3вольта?)

Сообщение отредактировал Cyber_RAT - May 12 2008, 04:38
Go to the top of the page
 
+Quote Post
anaconda
сообщение May 12 2008, 06:08
Сообщение #621


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-11-07
Пользователь №: 32 418



Дисплей подключен через обрезанный IDE кабель длиной 20-23см. Для согласования уровней используется 74lvc245. Подсветка сделана на MC34063(5В->10.5В). Выводы контроллера и 74lvc245, а также 74lvc245 и дисплея, соединены напрямую проводами.
Go to the top of the page
 
+Quote Post
dspy
сообщение May 12 2008, 17:56
Сообщение #622


Участник
*

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



Цитата(anaconda @ May 12 2008, 09:08) *
Дисплей подключен через обрезанный IDE кабель длиной 20-23см. Для согласования уровней используется 74lvc245. Подсветка сделана на MC34063(5В->10.5В). Выводы контроллера и 74lvc245, а также 74lvc245 и дисплея, соединены напрямую проводами.

а как включена lvc245, а то у меня чото не получается ее запустить(на виходах 4.9в)?
Go to the top of the page
 
+Quote Post
anaconda
сообщение May 13 2008, 10:52
Сообщение #623


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-11-07
Пользователь №: 32 418



Питаешь lvc245 от скольки вольт.

Сообщение отредактировал anaconda - May 13 2008, 10:54
Go to the top of the page
 
+Quote Post
ZiB
сообщение May 13 2008, 12:47
Сообщение #624


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Цитата(anaconda @ May 13 2008, 17:52) *
Питаешь lvc245 от скольки вольт.

зашил твой(только порты под себя переписал) код к себе вот что получилось: верхняя часть заливается по очереди цветами нижняя как и положенно залита шумами...
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
dspy
сообщение May 13 2008, 13:36
Сообщение #625


Участник
*

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



питаю от 3.3v
Go to the top of the page
 
+Quote Post
ZiB
сообщение May 13 2008, 13:56
Сообщение #626


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

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Подправил код, заливай и все пойдет...
Код
#define    COLOR_SKY        0x54fb
#define    COLOR_BLACK    0x0000
#define    COLOR_WHITE    0xFFFF
#define    COLOR_GREEN    0x07E0
#define    COLOR_BLUE       0x7FF0
#define    COLOR_RED        0xF800
#define    COLOR_YELLOW  0xDEE0
#define    COLOR_ORANGE  0xAB00
#define    COLOR_PINK       0xF97F
#define    COLOR_BROWN   0x8200
#define    COLOR_GREY      0x8410
#define    COLOR_VIOLET   0x91D4

const Word _int_2[] =
{
    0xEF00, 0xEE04, 0x1B04, 0xFEFE, 0xFEFE,
    0xEF90, 0x4A04, 0x7F3F, 0xEE04, 0x4306
};

const Word _int_3[] =
{
    0xEF90, 0x0983, 0x0800, 0x0BAF, 0x0A00,
    0x0500, 0x0600, 0x0700, 0xEF00, 0xEE0C,
    0xEF90, 0x0080, 0xEFB0, 0x4902, 0xEF00,
    0x7F01, 0xE181, 0xE202, 0xE276, 0xE183
};

const Word _int_4[] =
{
    0x8001, 0xEF90, 0x0000
};

void LCD_S65_CMD(Word Cmd)
{
  Pin_On(Pin_LCD_S65_RS);
  Pin_Off(Pin_LCD_S65_CS);  
  //
  SPDR = BYTES(Cmd)[1]; do{}while(!(SPSR&_Bit(SPIF)));
  SPDR = BYTES(Cmd)[0]; do{}while(!(SPSR&_Bit(SPIF)));  
  //
  Pin_On(Pin_LCD_S65_CS);        
}

void LCD_S65_DATA(Word Data)
{
  Pin_Off(Pin_LCD_S65_RS);
  Pin_Off(Pin_LCD_S65_CS);
  //
  SPDR = BYTES(Data)[1]; do{}while(!(SPSR&_Bit(SPIF)));
  SPDR = BYTES(Data)[0]; do{}while(!(SPSR&_Bit(SPIF)));  
  //
  Pin_On(Pin_LCD_S65_CS);
}


void LCD_S65_Init(void)
{
  Pin_Out_On(Pin_LCD_S65_CS);
  Pin_Out_Off(Pin_LCD_S65_Reset);
  Pin_Out_On(Pin_LCD_S65_RS);  
  //
  Pin_In(Pin_SPI_MISO);
  Pin_Out_Off(Pin_SPI_SS);
  Pin_Out_Off(Pin_SPI_MOSI);
  Pin_Out_Off(Pin_SPI_SCK);    
  //
  Delay(1_ms);
  //
  Pin_Out_On(Pin_LCD_S65_Reset);
  
  //
  SPSR = _Bit(SPI2X);
  SPCR = _Bit(SPE) | _Bit(MSTR);
  
  //    
  Pin_On(Pin_LCD_S65_CS);
  //
  LCD_S65_CMD(0xFDFD);
  LCD_S65_CMD(0xFDFD);
  //
  Delay(50_ms);
  //
  for(Byte i = 0; i < 10; i++) LCD_S65_CMD(_int_2[i]);
  //
  Delay(7_ms);
  //
  for(Byte i = 0; i< 20; i++) LCD_S65_CMD(_int_3[i]);
  //
  Delay(30_ms);
  //
  for(Byte i = 0; i < 3; i++) LCD_S65_CMD(_int_4[i]);      
  //
  Delay(30_ms);
}

void LCD_S65_SET_WINDOW(Byte Xmin, Byte Ymin, Byte Xmax, Byte Ymax)
{
  LCD_S65_CMD(0xEF90);
  LCD_S65_CMD(0x0500);
  LCD_S65_CMD(0x0800 | Xmin);
  LCD_S65_CMD(0x0A00 | Ymin);
  LCD_S65_CMD(0x0900 | Xmax);
  LCD_S65_CMD(0x0B00 | Ymax);
}

void LCD_S65_FILL_ALL(Word Color)                                    
{
  LCD_S65_SET_WINDOW(0, 0, 132, 178);
  //  
  Pin_Off(Pin_LCD_S65_RS);        
  //
  for(Word i = 0; i < 132*178; i++)
  {
    Pin_Off(Pin_LCD_S65_CS);        
    SPDR = BYTES(Color)[1]; do{}while(!(SPSR&_Bit(SPIF)));
    SPDR = BYTES(Color)[0]; do{}while(!(SPSR&_Bit(SPIF)));
    Pin_On(Pin_LCD_S65_CS);        
  }
}

int main()
{
  //
  LCD_S65_Init();

  //
  for(;;)
  {
    LCD_S65_FILL_ALL(COLOR_SKY);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BLACK);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_WHITE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_GREEN);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BLUE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_RED);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_YELLOW);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_ORANGE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_PINK);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BROWN);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_GREY);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_VIOLET);
    Delay(1_s);
  }
}
Go to the top of the page
 
+Quote Post
Juras Pr.
сообщение May 13 2008, 20:37
Сообщение #627


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 26-04-08
Из: BY/MN
Пользователь №: 37 111



Экран LS020, работа регистра прокрутки экрана R11h, в который записывается значение смещения величиной от 0 до 175. Значения выше AFh (175) игнорируются.
LS020_Scroll - для просмотра нужен кодек H264.

Сообщение отредактировал Juras Pr. - May 13 2008, 20:52
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
anaconda
сообщение May 14 2008, 06:05
Сообщение #628


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-11-07
Пользователь №: 32 418



Цитата(ZiB @ May 13 2008, 16:56) *
Подправил код, заливай и все пойдет...
Код
#define    COLOR_SKY        0x54fb
#define    COLOR_BLACK    0x0000
#define    COLOR_WHITE    0xFFFF
#define    COLOR_GREEN    0x07E0
#define    COLOR_BLUE       0x7FF0
#define    COLOR_RED        0xF800
#define    COLOR_YELLOW  0xDEE0
#define    COLOR_ORANGE  0xAB00
#define    COLOR_PINK       0xF97F
#define    COLOR_BROWN   0x8200
#define    COLOR_GREY      0x8410
#define    COLOR_VIOLET   0x91D4

const Word _int_2[] =
{
    0xEF00, 0xEE04, 0x1B04, 0xFEFE, 0xFEFE,
    0xEF90, 0x4A04, 0x7F3F, 0xEE04, 0x4306
};

const Word _int_3[] =
{
    0xEF90, 0x0983, 0x0800, 0x0BAF, 0x0A00,
    0x0500, 0x0600, 0x0700, 0xEF00, 0xEE0C,
    0xEF90, 0x0080, 0xEFB0, 0x4902, 0xEF00,
    0x7F01, 0xE181, 0xE202, 0xE276, 0xE183
};

const Word _int_4[] =
{
    0x8001, 0xEF90, 0x0000
};

void LCD_S65_CMD(Word Cmd)
{
  Pin_On(Pin_LCD_S65_RS);
  Pin_Off(Pin_LCD_S65_CS);  
  //
  SPDR = BYTES(Cmd)[1]; do{}while(!(SPSR&_Bit(SPIF)));
  SPDR = BYTES(Cmd)[0]; do{}while(!(SPSR&_Bit(SPIF)));  
  //
  Pin_On(Pin_LCD_S65_CS);        
}

void LCD_S65_DATA(Word Data)
{
  Pin_Off(Pin_LCD_S65_RS);
  Pin_Off(Pin_LCD_S65_CS);
  //
  SPDR = BYTES(Data)[1]; do{}while(!(SPSR&_Bit(SPIF)));
  SPDR = BYTES(Data)[0]; do{}while(!(SPSR&_Bit(SPIF)));  
  //
  Pin_On(Pin_LCD_S65_CS);
}
void LCD_S65_Init(void)
{
  Pin_Out_On(Pin_LCD_S65_CS);
  Pin_Out_Off(Pin_LCD_S65_Reset);
  Pin_Out_On(Pin_LCD_S65_RS);  
  //
  Pin_In(Pin_SPI_MISO);
  Pin_Out_Off(Pin_SPI_SS);
  Pin_Out_Off(Pin_SPI_MOSI);
  Pin_Out_Off(Pin_SPI_SCK);    
  //
  Delay(1_ms);
  //
  Pin_Out_On(Pin_LCD_S65_Reset);
  
  //
  SPSR = _Bit(SPI2X);
  SPCR = _Bit(SPE) | _Bit(MSTR);
  
  //    
  Pin_On(Pin_LCD_S65_CS);
  //
  LCD_S65_CMD(0xFDFD);
  LCD_S65_CMD(0xFDFD);
  //
  Delay(50_ms);
  //
  for(Byte i = 0; i < 10; i++) LCD_S65_CMD(_int_2[i]);
  //
  Delay(7_ms);
  //
  for(Byte i = 0; i< 20; i++) LCD_S65_CMD(_int_3[i]);
  //
  Delay(30_ms);
  //
  for(Byte i = 0; i < 3; i++) LCD_S65_CMD(_int_4[i]);      
  //
  Delay(30_ms);
}

void LCD_S65_SET_WINDOW(Byte Xmin, Byte Ymin, Byte Xmax, Byte Ymax)
{
  LCD_S65_CMD(0xEF90);
  LCD_S65_CMD(0x0500);
  LCD_S65_CMD(0x0800 | Xmin);
  LCD_S65_CMD(0x0A00 | Ymin);
  LCD_S65_CMD(0x0900 | Xmax);
  LCD_S65_CMD(0x0B00 | Ymax);
}

void LCD_S65_FILL_ALL(Word Color)                                    
{
  LCD_S65_SET_WINDOW(0, 0, 132, 178);
  //  
  Pin_Off(Pin_LCD_S65_RS);        
  //
  for(Word i = 0; i < 132*178; i++)
  {
    Pin_Off(Pin_LCD_S65_CS);        
    SPDR = BYTES(Color)[1]; do{}while(!(SPSR&_Bit(SPIF)));
    SPDR = BYTES(Color)[0]; do{}while(!(SPSR&_Bit(SPIF)));
    Pin_On(Pin_LCD_S65_CS);        
  }
}

int main()
{
  //
  LCD_S65_Init();

  //
  for(;;)
  {
    LCD_S65_FILL_ALL(COLOR_SKY);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BLACK);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_WHITE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_GREEN);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BLUE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_RED);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_YELLOW);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_ORANGE);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_PINK);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_BROWN);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_GREY);
    Delay(1_s);
    //
    LCD_S65_FILL_ALL(COLOR_VIOLET);
    Delay(1_s);
  }
}


Ок. Сегодня вечером попробую.
Go to the top of the page
 
+Quote Post
Juras Pr.
сообщение May 14 2008, 18:34
Сообщение #629


Участник
*

Группа: Участник
Сообщений: 61
Регистрация: 26-04-08
Из: BY/MN
Пользователь №: 37 111



Еще немного по прокрутке. Регистр R0Fh определяет стартовую позицию области прокрутки, регистр R10h - конечную позицию области прокрутки по оси, на которой 176 точек. При увеличении содержимого регистра R11h содержимое области прокрутки начинает смещаться влево. Если содержимое регистра R11h превышает содержимое регистра R10h, то прокрутка не происходит (будто бы в R11 занесено значение 00h).
Прикрепленное изображение

Прикрепленный файл  LS020_Scroll_2.zip ( 118.67 килобайт ) Кол-во скачиваний: 330

В архиве - видео (кодек H264).
Go to the top of the page
 
+Quote Post
Evgeniy22
сообщение May 15 2008, 12:36
Сообщение #630





Группа: Новичок
Сообщений: 2
Регистрация: 12-10-07
Пользователь №: 31 286



Доброго времени суток всем!!!!
Вот тоже занялся дисплеями сотовых. Ковыряю дисплей сименса S65(L2F50126), написал уже небольшую графическую библиотеку, а теперь занялся шрифтами. Для шрифтов хочу использовать конвертер Хагена, но никак не пойму как считать данные из массива. Был бы очень признателен если бы кто-нибудь выложил код вывода символа из С-массива(без сжатия).
Go to the top of the page
 
+Quote Post

87 страниц V  « < 40 41 42 43 44 > » 
Reply to this topicStart new topic
16 чел. читают эту тему (гостей: 16, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:48
Рейтинг@Mail.ru


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