помогите с DG16080
помогите с DG16080
как инициализировать (пишу в codevision)

[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- Реклама
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
Код: Выделить всё
void lcd_graphics_init(void)
{
// unsigned char commandData;
lcd_res_low();
lcd_enable_low();
lcd_rs_low();
lcd_cs_low();
DelayMs(1);
lcd_res_high();
DelayMs(50);
lcd_write_command(0x00,0x32);
lcd_write_command(0x01,0x77);
lcd_write_command(0x02,(LCD_GRAPHIC_WIDTH / 8)-1);
lcd_write_command(0x03,0x7F);
lcd_write_command(0x04,0x07);
lcd_write_command(0x08,0x00);
lcd_write_command(0x09,0x00);
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
lcd_graphics_clear();
}
//
void lcd_write_command(unsigned char command, unsigned char data)
{
lcd_writecom(command);
wait();
lcd_writedat(data);
wait();
}
//
//---------------------------------------------------------------
void lcd_writedat(unsigned char byte)
{
lcd_rs_low();
lcd_rw_low();
wait();
fnSetLcdData(byte);
wait();
lcd_strobe_enable();
}
//------------------------------------------
void lcd_writecom(unsigned char byte)
{
lcd_rs_high();
lcd_rw_low();
wait();
fnSetLcdData(byte);
wait();
lcd_strobe_enable();
}
//-------------------------------------------
Re: помогите с DG16080
громное спасибо
только вот в чем проблема немогу вывести на дисплей хоть что нибудь
если можете посмотрите и пхните в нужном направлении
только вот в чем проблема немогу вывести на дисплей хоть что нибудь
если можете посмотрите и пхните в нужном направлении
Код: Выделить всё
#include <mega8.h>
#include <atmega8_init.h>
#include <define.h>
#include <lc7981.h>
#include <delay.h>
void main()
{
atmega8_init();
glcd_init();
lcd_clear();
lcd_plot_pixel (5,5,1);
while (1)
{
}
}Код: Выделить всё
void lcd_clear()
{
int i;
lcdcomand_write(0x0A,0x00);
lcdcomand_write(0x0B,0x00);
lcd_com (0x0C);
for(i=0; i<160*80/8; i++)
{
lcd_dat(0x00);
}
}
void lcd_setadress( unsigned char x, unsigned char y )
{
unsigned short pos;
pos = ((y*160)+x)/8;
lcdcomand_write(0x0A,pos); // writeadress low
lcdcomand_write(0x0B,pos); // writeadress high
}
void lcd_plot_pixel(unsigned short x, unsigned short y, unsigned char state) {
unsigned char pos;
lcd_setadress(x, y);
pos = x%8;
if (state == 1)
lcdcomand_write(0x0F, pos&0xff);
else
lcdcomand_write(0x0E, pos>>8);
}
void glcd_init()
{
RESET = 0;
E = 0;
RS = 0;
CS = 0;
RESET = 1;
delay_ms(10);
lcdcomand_write(0x00,0x32);
lcdcomand_write(0x01,0x07); //размер символа
lcdcomand_write(0x02,0x13); //СИМВОЛОВ НА ЛИНИЮ 20
lcdcomand_write(0x03,0x7F); //
lcdcomand_write(0x04,0x07);
lcdcomand_write(0x08,0x00);
lcdcomand_write(0x09,0x00);
lcdcomand_write(0x0A,0x00);
lcdcomand_write(0x0B,0x00);
lcd_clear();
}
Код: Выделить всё
#define lcd_data PORTD
#define lcd_ctrl_data DDRD
#define lcd_read_data PIND
#define RS PORTC.0
#define RS_BUZ PINC.0
#define RW PORTC.1
#define RW_BUZ PINC.1
#define E PORTC.2
#define CS PORTC.3
#define RESET PORTC.4
#define READ_DISPLAY PORTC.1 = 1
#define WRITE_DISPLAY PORTC.1 = 0
#define COMAND PORTC.0 = 1
#define DATA PORTC.0 = 0
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
покажи lcdcomand_write
а лучше весь проект.
Текст, который я привел - рабочий.
Посмотри задержки по выдаче инфы.
Мне как бы проще написать на кв свой текст, чем это править...
а лучше весь проект.
Текст, который я привел - рабочий.
Посмотри задержки по выдаче инфы.
Мне как бы проще написать на кв свой текст, чем это править...
Re: помогите с DG16080
Код: Выделить всё
#include <delay.h>
void lcd_com (char com)
{
RS = 1;
RW = 0;
delay_ms(1);
lcd_data = com;
delay_ms(1);
E = 1;
}
void lcd_dat (char dat)
{
RS = 0;
RW = 0;
delay_ms(1);
lcd_data = dat;
delay_ms(1);
}
void lcdcomand_write(char comand,char data)
{
lcd_ctrl_data = 0xFF;
DDRC = 0x1F;
RS = 1;
RW = 0;
delay_us(2);
lcd_data = comand;
delay_us(2);
E = 1;
RS = 0;
RW = 0;
delay_us(2);
lcd_data = data;
delay_us(2);
}
void lcd_clear()
{
int i;
lcdcomand_write(0x0A,0x00);
lcdcomand_write(0x0B,0x00);
lcd_com (0x0C);
for(i=0; i<160*80/8; i++)
{
lcd_dat(0x00);
}
}
void lcd_setadress( unsigned char x, unsigned char y )
{
unsigned short pos;
pos = ((y*160)+x)/8;
lcdcomand_write(0x0A,pos); // writeadress low
lcdcomand_write(0x0B,pos); // writeadress high
}
void lcd_plot_pixel(unsigned short x, unsigned short y, unsigned char state) {
unsigned char pos;
lcd_setadress(x, y);
pos = x%8;
if (state == 1)
lcdcomand_write(0x0F, pos&0xff);
else
lcdcomand_write(0x0E, pos>>8);
}
void glcd_init()
{
RESET = 0;
E = 0;
RS = 0;
CS = 0;
RESET = 1;
delay_ms(10);
lcdcomand_write(0x00,0x32);
lcdcomand_write(0x01,0x07); //размер символа
lcdcomand_write(0x02,0x13); //СИМВОЛОВ НА ЛИНИЮ 20
lcdcomand_write(0x03,0x7F); //
lcdcomand_write(0x04,0x07);
lcdcomand_write(0x08,0x00);
lcdcomand_write(0x09,0x00);
lcdcomand_write(0x0A,0x00);
lcdcomand_write(0x0B,0x00);
lcd_clear();
}
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- Реклама
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
Не сбрасываешь енейбл
void lcd_strobe_enable(void)
{
wait();
lcd_enable_high();
wait();
lcd_enable_low();
wait();
}
где wait(); - это задержка 3 микросекунды, зачем у тебя такие длинные задержки...
void lcd_strobe_enable(void)
{
wait();
lcd_enable_high();
wait();
lcd_enable_low();
wait();
}
где wait(); - это задержка 3 микросекунды, зачем у тебя такие длинные задержки...
Re: помогите с DG16080
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
Ну поправь код... Стробирование хромает...
Re: помогите с DG16080
Код: Выделить всё
#include <delay.h>
void lsd_buz ()
{
lcd_ctrl_data = 0x00;
RS = 1;
RW = 1;
while(lcd_read_data == 0x80)
{
delay_ms(3);
}
}
void lcd_strobe_enable(void)
{
delay_us(3);
E = 1;
delay_us(3);
E = 0;
delay_us(3);
}
void lcd_com (char com)
{
RS = 1;
RW = 0;
delay_us(3);
lcd_data = com;
delay_us(3);
lcd_strobe_enable();
}
void lcd_dat (char dat)
{
RS = 0;
RW = 0;
delay_us(3);
lcd_data = dat;
delay_us(3);
lcd_strobe_enable();
}
void lcdcomand_write(char comand,char data)
{
lcd_ctrl_data = 0xFF;
DDRC = 0x1F;
RS = 1;
RW = 0;
delay_us(3);
lcd_data = comand;
delay_us(3);
lcd_strobe_enable();
RS = 0;
RW = 0;
delay_us(3);
lcd_data = data;
delay_us(3);
lcd_strobe_enable();
}
void lcd_clear()
{
int i;
lcdcomand_write(0x0A,0x00);
lcdcomand_write(0x0B,0x00);
lcd_com (0x0C);
for(i=0; i<160*80/8; i++)
{
lcd_dat(0x00);
}
}
void lcd_setadress( unsigned char x, unsigned char y )
{
unsigned short pos;
pos = ((y*160)+x)/8;
lcdcomand_write(0x0A,pos); // writeadress low
lcdcomand_write(0x0B,pos); // writeadress high
}
void lcd_plot_pixel(unsigned short x, unsigned short y, unsigned char state) {
unsigned char pos;
lcd_setadress(x, y);
pos = x%8;
if (state == 1)
lcdcomand_write(0x0F, pos&0xff);
else
lcdcomand_write(0x0E, pos>>8);
}
void glcd_init()
{
RESET = 0;
E = 0;
RS = 0;
CS = 0;
RESET = 1;
delay_ms(10);
lcdcomand_write(0x00,0x32);
lsd_buz ();
lcdcomand_write(0x01,0x07); //размер символа
lsd_buz ();
lcdcomand_write(0x02,0x13); //СИМВОЛОВ НА ЛИНИЮ 20
lsd_buz ();
lcdcomand_write(0x03,0x7F); //
lsd_buz ();
lcdcomand_write(0x04,0x07);
lsd_buz ();
lcdcomand_write(0x08,0x00);
lsd_buz ();
lcdcomand_write(0x09,0x00);
lsd_buz ();
lcdcomand_write(0x0A,0x00);
lsd_buz ();
lcdcomand_write(0x0B,0x00);
lsd_buz ();
lcd_clear();
lsd_buz ();
} [size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
И что ?
Разница есть ?
Разница есть ?
Re: помогите с DG16080
ну экран мусором не засыпает
а вот вывести хоть один пиксель не могу
а вот вывести хоть один пиксель не могу
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
Ну это как бы радует.
А на фига здесь сдвигаешь ?
void lcd_plot_pixel(unsigned short x, unsigned short y, unsigned char state) {
lcdcomand_write(0x0E, pos>>8);
хотя на вопрос, почему ничего нет, как бы невнятный ответ.
Заполни при очистке пол экрана нулями, а вторую чем нибудь типа
удостовериться, что с железом все нормально.
А на фига здесь сдвигаешь ?
void lcd_plot_pixel(unsigned short x, unsigned short y, unsigned char state) {
lcdcomand_write(0x0E, pos>>8);
Код: Выделить всё
void lcd_graphics_plot_pixel(unsigned char x, unsigned char y, unsigned char state)
{
unsigned char pos;
lcd_graphics_move(x, y);
/* Since lcd_graphics_move() moves the cursor to a particular
* byte, not bit, we need the relative distance to the specified
* bit we are going to set/clear. */
pos = x%8;
if (state == PIXEL_ON)
lcd_write_command(LCD_CMD_SET_BIT, pos);
else
lcd_write_command(LCD_CMD_CLEAR_BIT, pos);
}
Заполни при очистке пол экрана нулями, а вторую чем нибудь типа
Код: Выделить всё
void lcd_graphics_clear(void)
{
unsigned int i;
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
for(i = 0; i < 800; i++)
{
lcd_write_command(0x0C,0x00);
}
for(i = 800; i < 1600; i++)
{
lcd_write_command(0x0C,0x55);
}
lcd_write_command(0x0A,0x00);
lcd_write_command(0x0B,0x00);
}
Re: помогите с DG16080
извиняюсь у меня DG16080-11 на LC7981 с touch-screen
но они ничего не хотят рисовать (у мну их 3шт)

но они ничего не хотят рисовать (у мну их 3шт)
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
У меня как бы тоже, но работают.На пике.
ждите выходных, возможно, меня пробьет портировать на мегу8 и потестить в железе.
ждите выходных, возможно, меня пробьет портировать на мегу8 и потестить в железе.
Re: помогите с DG16080
а скажите плиз на какой частоте должен работать мк (а то у меня на 8Мгц)
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
Да причем здесь частота контроллера...
Re: помогите с DG16080
да я уже не пойму в чем может быть дело
(должно оно работать !!!!!) только как запустить 
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
Re: помогите с DG16080
Ура запустил 
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: помогите с DG16080
(c) Хор имени пятницкого по этому поводу именно ?
Это Жванецкий, но у всех остальных как бы тоже работает.
Разделяя Вашу радость...
Это Жванецкий, но у всех остальных как бы тоже работает.
Разделяя Вашу радость...
Re: помогите с DG16080
по поводу отображения шрифта 32x32 pixel сможете подсказать чё и как ? 
[size=150][color=#FF0000]Во имя пpоцесса-отца, пpоцесса-сына и святаго root'а... АМИHЬ![/color][/size]


