[an error occurred while processing this directive]
Вот программа для запуска индикатора
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Hell 23 марта 2005 г. 14:34
В ответ на: Смотри сигналы перед инициализацией (+) отправлено Sheldi 23 марта 2005 г. 13:04

Вот при помощи такого кода я пытаюсь его запустить :
#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: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru