Hello!
I have some problem with display UG-5664 w/controller SSD1322.
It doesn't want to work.
There is initialization code below:
Connection scheme include.
Please, help. What i do incorrect?
P.S. Sorry, my English not so well.
I have some problem with display UG-5664 w/controller SSD1322.
It doesn't want to work.
There is initialization code below:
Code:
#include "ioavr.h"
#include "intrinsics.h"
#define SetBit(x,y) (x|=(1<<y))
#define ClrBit(x,y) (x&=~(1<<y))
#define XTAL_MHz 7.3728
#define delay_us(us) __delay_cycles((unsigned long int)us*XTAL_MHz)
#define delay_ns(ns) delay_us(ns/1000)
#define delay_ms(ms) delay_us(ms*1000)
#define DATA_PORT PORTC
#define DATA_DDR DDRC
#define CONFIG_PORT PORTA
#define CONFIG_DDR DDRA
#define CS 5
#define RES 3
#define WR 1
#define RS 2
#define RD 0
#define BS0 6
#define BS1 7
void LCD_WriteCommand(unsigned char data)
{
ClrBit(CONFIG_PORT, RS);
ClrBit(CONFIG_PORT, CS);
ClrBit(CONFIG_PORT, WR);
DATA_PORT = data;
SetBit(CONFIG_PORT, WR);
SetBit(CONFIG_PORT, CS);
SetBit(CONFIG_PORT, RS);
}
void LCD_WriteData(unsigned char data)
{
SetBit(CONFIG_PORT, RS);
ClrBit(CONFIG_PORT, CS);
ClrBit(CONFIG_PORT, WR);
DATA_PORT = data;
SetBit(CONFIG_PORT, WR);
SetBit(CONFIG_PORT, CS);
SetBit(CONFIG_PORT, RS);
}
void Set_Gray_Scale_Table()
{
LCD_WriteCommand(0xB8); // Set Gray Scale Table
LCD_WriteData(0x0C); // Gray Scale Level 1
LCD_WriteData(0x18); // Gray Scale Level 2
LCD_WriteData(0x24); // Gray Scale Level 3
LCD_WriteData(0x30); // Gray Scale Level 4
LCD_WriteData(0x3C); // Gray Scale Level 5
LCD_WriteData(0x48); // Gray Scale Level 6
LCD_WriteData(0x54); // Gray Scale Level 7
LCD_WriteData(0x60); // Gray Scale Level 8
LCD_WriteData(0x6C); // Gray Scale Level 9
LCD_WriteData(0x78); // Gray Scale Level 10
LCD_WriteData(0x84); // Gray Scale Level 11
LCD_WriteData(0x90); // Gray Scale Level 12
LCD_WriteData(0x9C); // Gray Scale Level 13
LCD_WriteData(0xA8); // Gray Scale Level 14
LCD_WriteData(0xB4); // Gray Scale Level 15
LCD_WriteCommand(0x00); // Enable Gray Scale Table
}
void LCD_Init(void)
{
ClrBit(CONFIG_PORT, RES);
delay_ms(40);
SetBit(CONFIG_PORT, RES);
LCD_WriteCommand(0xFD);
LCD_WriteData(0x12);
LCD_WriteCommand(0xAE);
LCD_WriteCommand(0xB3);
LCD_WriteData(0x91);
LCD_WriteCommand(0xCA);
LCD_WriteData(0x3F);
LCD_WriteCommand(0xA2);
LCD_WriteData(0x00);
LCD_WriteCommand(0xA1);
LCD_WriteData(0x00);
LCD_WriteCommand(0xA0);
LCD_WriteData(0x14);
LCD_WriteData(0x11);
LCD_WriteCommand(0xB5);
LCD_WriteData(0x00);
LCD_WriteCommand(0xAB);
LCD_WriteData(0x00);
LCD_WriteCommand(0xB4);
LCD_WriteData(0xA0);
LCD_WriteData(0xFD);
LCD_WriteCommand(0xC1);
LCD_WriteData(0x9F);
LCD_WriteCommand(0xC7);
LCD_WriteData(0x0F);
LCD_WriteCommand(0xB9);
LCD_WriteCommand(0xB1);
LCD_WriteData(0xE2);
LCD_WriteCommand(0xD1);
LCD_WriteData(0x82);
LCD_WriteData(0x20);
LCD_WriteCommand(0xBB);
LCD_WriteData(0x1F);
LCD_WriteCommand(0xB6);
LCD_WriteData(0x08);
LCD_WriteCommand(0xBE);
LCD_WriteData(0x07);
LCD_WriteCommand(0xA5);
LCD_WriteCommand(0xAF);
}
int main( void )
{
DATA_DDR = 0xFF;
DATA_PORT = 0x00;
CONFIG_DDR = 0xFF;
CONFIG_PORT = 0x00;
SetBit(CONFIG_PORT, RD);
//ClrBit(CONFIG_PORT, BS0);
//SetBit(CONFIG_PORT, BS1);
LCD_Init();
while(1)
{};
}
Connection scheme include.
Please, help. What i do incorrect?
P.S. Sorry, my English not so well.