Witam!!!
Po kilku problem z inicjalizacją wyświetlacza w końcu widze jakieś piksele na min. Teraz chcaiłem sobie zapełnić cały wyśwetlacz jakimś dowolnym kolorem. Tu pojawia się problem. Robie wszystko tak jak w pdf;ie ze strony Superkranza i jakiś programów znalezionych w sieci i nic. Może mam gdzieś problem w programie którego ja nie mogę dostrzec. O to on:
Dodam, że sprzętowo wszystko jest ok. Sprawdzałęm to wiele razy. Mój wyświetlacz to model LS20. Bardzo proszę o pomoc.
Po kilku problem z inicjalizacją wyświetlacza w końcu widze jakieś piksele na min. Teraz chcaiłem sobie zapełnić cały wyśwetlacz jakimś dowolnym kolorem. Tu pojawia się problem. Robie wszystko tak jak w pdf;ie ze strony Superkranza i jakiś programów znalezionych w sieci i nic. Może mam gdzieś problem w programie którego ja nie mogę dostrzec. O to on:
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "spi.h"
#include "s65_lcd.h"
char cmd;
char int1[4] =
{
0xFD, 0xFD, 0xFD, 0xFD,
};
char int2[20] =
{
0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04,
0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06
};
char int3[40] =
{
0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF, 0x0A, 0x00, 0x05, 0x00, 0x06, 0x00,
0x07, 0x00, 0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80, 0xEF, 0xB0, 0x49, 0x02,
0xEF, 0x00, 0x7F, 0x01, 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83
};
char int4[2] =
{
0x80, 0x01
//0xEF, 0x90, 0x00, 0x00
};
void lcd_init(void)
{
int i = 0;
PORTD &=~_BV(PD4);
_delay_ms(1);
PORTD |=_BV(PD4);
for(i=0;i<=3;i++)
{
send_lcd_cmd(int1[i]);
}
_delay_ms(50);
for (i=0;i<=19;i++)
{
send_lcd_cmd(int2[i]);
}
_delay_ms(7);
for (i=0;i<=39;i++)
{
send_lcd_cmd(int3[i]);
}
_delay_ms(50);
for (i=0;i<=1;i++)
{
send_lcd_cmd(int4[i]);
}
_delay_ms(500);
lcd_bground();
}
void lcd_bground(void)
{
int i = 0;
send_lcd_cmd(0xEF);
send_lcd_cmd(0x90);
send_lcd_cmd(0x05);
send_lcd_cmd(0x00);
send_lcd_cmd(0x06);
send_lcd_cmd(0x00);
send_lcd_cmd(0x07);
send_lcd_cmd(0x00);
for (i=0; i<0x5AC0; i++)
{
send_lcd_dat(0xff);
send_lcd_dat(0xff);
}
}
void send_lcd_cmd(char lcd_data)
{
spi_init_lcd();
PORTD =_BV(RST)|_BV(RS);
PORTB &=~_BV(CS);
spi_send(lcd_data);
}
void send_lcd_dat(char lcd_data)
{
spi_init_lcd();
PORTD =_BV(RST);
PORTB &=~_BV(CS);
}
Dodam, że sprzętowo wszystko jest ok. Sprawdzałęm to wiele razy. Mój wyświetlacz to model LS20. Bardzo proszę o pomoc.