[an error occurred while processing this directive]
|
Вот при помощи такого кода я пытаюсь его запустить :
#define LCD_X_SIZE 320
#define LCD_Y_SIZE 240
void lcd_write_command(uchar comm)
{
DDRA= 0xFF;
PORTC&= (~(E));
PORTC= (PORTC& 0x0F)| A0| RES;
__asm__ ("nop");
__asm__ ("nop");
PORTC|= E;
__asm__ ("nop");
__asm__ ("nop");
PORTA= comm;
__asm__ ("nop");
__asm__ ("nop");
PORTC&= (~(E));
}
void lcd_write_data(uchar data)
{
DDRA= 0xFF;
PORTC&= ~E;
__asm__ ("nop");
__asm__ ("nop");
PORTC&= 0x0F| RES;
__asm__ ("nop");
__asm__ ("nop");
PORTC|= E;
__asm__ ("nop");
__asm__ ("nop");
PORTA= data;
__asm__ ("nop");
__asm__ ("nop");
PORTC&= ~E;
__asm__ ("nop");
__asm__ ("nop");
}
void lcd_clear_text(void)
{
int i;
lcd_write_command(0x46);
lcd_write_data(0x00);
lcd_write_data(0x10);
lcd_write_command(0x42);
for (i=0; i<((LCD_X_SIZE/8)*(LCD_Y_SIZE/8)); i++) lcd_write_data(i); // Выводим байты, что бы хотя бы увидеть какой-нибудь мусор
lcd_write_command(0x46);
lcd_write_data(0x00);
lcd_write_data(0x00);
}
void lcd_init(void)
{
int i;
PORTC|= RES;
wait_ms(10);
PORTC&= ~RES;
wait_ms(1);
PORTC|= RES;
PORTC= 0xFF& (~E);
DDRC= 0xF0;
// System
lcd_write_command(0x40);
lcd_write_data(0x30);
lcd_write_data(0x87);
lcd_write_data(0x07);
lcd_write_data((LCD_X_SIZE/8)-1);
lcd_write_data(0x40); // Посчитал, по идее должно быть оно. Пробовал множество чисел
lcd_write_data(LCD_Y_SIZE - 1);
lcd_write_data(LCD_X_SIZE/8);
lcd_write_data(0x00);
// Scroll
lcd_write_command(0x44);
lcd_write_data(0x00);
lcd_write_data(0x00);
lcd_write_data(LCD_Y_SIZE);
lcd_write_data(0x00);
lcd_write_data(0x10);
lcd_write_data(LCD_Y_SIZE);
// Horizontal scroll
lcd_write_command(0x5a);
lcd_write_data(0x00);
// Overlay
lcd_write_command(0x5b);
lcd_write_data(0x03);
// Display On/Off I
lcd_write_command(0x58);
lcd_write_data(0x14);
lcd_clear_text();
// Cursor format
lcd_write_command(0x5d);
lcd_write_data(0x07);
lcd_write_data(0x87);
// Display On/Off II
lcd_write_command(0x59);
lcd_write_data(0x14);
// Curson direction
lcd_write_command(0x4c);
// CUrsor write
lcd_write_command(0x46);
lcd_write_data(0x00);
lcd_write_data(0x00);
}
Но оно все равно не хочет запускаться.
E-mail: info@telesys.ru