📄 ssd1289_eio1.c
字号:
/****************************************Copyright (c)**************************************************
** Beijing Visionox Technology Co.,LTD.
**
**
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2007-03-09
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Alan Dong
** Created date: 2007-03-08
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"
#include "KEY_LED.h"
#include "TFT_LCD.h"
/*******************************************************************************************************/
//Delay sevral ms
void DelayNS(uint32 dly) //dly=1,delay 10ms
{ uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*void WaitKey1(void)
{
uint32 i;
while(1)
{
while()
}
}*/
//Write Command
void Write_cmd(uint32 cmd)
{
IO0CLR=TFT_RS; //This is function for CMD
IO0SET=TFT_WR; //Pull up the WR sign
IO0PIN=(IO0PIN&0xFF00FFFF)|((cmd&0x0000FF00)<<8);
IO1PIN=(IO1PIN&0xFF00FFFF)|((cmd&0x000000FF)<<16);
IO0CLR=TFT_WR;
}
//Write Data
void Write_data(uint32 data)
{
IO0SET=TFT_RS;
IO0SET=TFT_WR;
IO0PIN=(IO0PIN&0xFF00FFFF)|((data&0x0000FF00)<<8);
IO1PIN=(IO1PIN&0xFF00FFFF)|((data&0x000000FF)<<16);
IO0CLR=TFT_WR;
}
//Display the last picture
void DisLastP(void)
{
}
//Display the next picture
void DisNextP(void)
{
}
//All Display ON
void DisplayOn(void)
{ uint32 i;
Write_cmd(0x22); //WRITE TO RAM
for(i=0;i<76800;i++)
Write_data(0x0000); //RED
}
//All Display OFF
void DisplayOff(void)
{
}
//Display RGB
void DisplayRGB(void)
{ uint32 i;
Write_cmd(0x22); //WRITE TO RAM
for(i=0;i<25600;i++)
Write_data(0x07FF); //RED
for(i=0;i<25600;i++)
Write_data(0xF81F); //GREEN
for(i=0;i<25600;i++)
Write_data(0xFFE0); //BLUE
}
void DisplayRed(void)
{ uint32 i;
Write_cmd(0x22); //WRITE TO RAM
for(i=0;i<76800;i++)
Write_data((0x07FF)|((i/2400)<<11)); //RED
}
void DisplayGreen(void)
{ uint32 i;
Write_cmd(0x22); //WRITE TO RAM
for(i=0;i<76800;i++)
Write_data((0xF81F)|((i/1200)<<5)); //GREEN
}
void DisplayBlue(void)
{ uint32 i;
Write_cmd(0x22); //WRITE TO RAM
for(i=0;i<76800;i++)
Write_data((0xFFE0)|(i/2400)); //BLUE
}
//Display package
void DisplayPack(int i)
{
switch(i)
{
case 0:
DisplayOn();
break;
case 1:
DisplayRed();
break;
case 2:
DisplayGreen();
break;
case 3:
DisplayBlue();
break;
default:
break;
}
}
//TFT_LCD int
void TFT_Int(void)
{
//int i;
IO0CLR=TFT_RES;
IO0CLR=TFT_CS; //Active the TFT IC
//IO0CLR=TFT_RES;
IO0SET=TFT_RS; //Initial the RS sign
IO0SET=TFT_RD; //Pull up the RD sign
IO0SET=TFT_WR; //Initial the RS sign
DelayNS(10); //Delay 100ms
IO0SET=TFT_RES;
//initial code
Write_cmd(0x10); //Oscillation Start
Write_data(0x0000);
DelayNS(1); //Delay 100ms
Write_cmd(0x00); //Oscillation Start
Write_data(0x0001);
Write_cmd(0x01); //Output Control
Write_data(0x2B3F);
Write_cmd(0x10); //Sleep Mode
Write_data(0x0000);
Write_cmd(0x07); //Display Control
Write_data(0x0033);
Write_cmd(0x11); //Entry mode
Write_data(0x6830);
Write_cmd(0x02); //LCD driver AC control
Write_data(0x0600);
Write_cmd(0x03); //Power Control
Write_data(0x046E);
Write_cmd(0x0D); //Power Control
Write_data(0x0008);
Write_cmd(0x0E); //Power Control
Write_data(0x3300);
Write_cmd(0x25); //Frame Frequency
Write_data(0xE000);
Write_cmd(0x0B); //Frame cycle control
Write_data(0x5333);
Write_cmd(0x17); //Vertical porch
Write_data(0x1B1B);
Write_cmd(0x1E); //Power control
Write_data(0x009B);
Write_cmd(0x0F); //Gate scan start
Write_data(0x0000);
Write_cmd(0x041); //Vertical scroll
Write_data(0x0000);
Write_cmd(0x42); //Vertical scroll
Write_data(0x0000);
Write_cmd(0x44); //Horizontal scroll
Write_data(0xEF00);
Write_cmd(0x45); //Vertical ram adress start
Write_data(0x0000);
Write_cmd(0x46); //Vertical ram adress end
Write_data(0x013F);
Write_cmd(0x48); //First window start
Write_data(0x0000);
Write_cmd(0x49); //First window end
Write_data(0x013F);
Write_cmd(0x4A); //Second window start
Write_data(0x0000);
Write_cmd(0x4B); //Second window end
Write_data(0x0000);
//GammaSet
Write_cmd(0x30);
Write_data(0x0100);
Write_cmd(0x31);
Write_data(0x0707);
Write_cmd(0x32);
Write_data(0x0707);
Write_cmd(0x33);
Write_data(0x0200);
Write_cmd(0x34);
Write_data(0x0000);
Write_cmd(0x35);
Write_data(0x0000);
Write_cmd(0x36);
Write_data(0x0706);
Write_cmd(0x37);
Write_data(0x0002);
Write_cmd(0x3A);
Write_data(0x1E00);
Write_cmd(0x3B);
Write_data(0x000F);
}
/*******************************************************************************************************/
/*******************************************************************************************************/
int main (void)
{// add user source code
//int i;
PINSEL0=0x00000000; //P0[31:0] used as GPIO
PINSEL1=0x00000000; //P0[31:0] used as GPIO
PINSEL2=PINSEL2&(~0x08); //P1[25:16] used as GPIO
//IO0DIR=LED_BL; //LED_BL used as OUTPUT PIN
//IO1DIR=LED_FLASH; //LED_FLASH used as OUTPUT PIN
IO0DIR=0xFFFFFD7F; //P0 used as OUTPUT but p0.7&p0.9
IO1DIR=TFT_DL|LED_FLASH;
TFT_Int();
IO0SET=LED_BL;
//DisplayOn();
DisplayRGB();
//* //THIS while used to test the hardward
while(1)
{
if((IO0PIN&KEY_UP)==0)
{
IO0SET=LED_BL;
IO1CLR=LED_FLASH;
// for(j=0;j<50000;j++);
// if((IO0PIN&KEY_UP)==0)
//while((IO0PIN&KEY_UP)==0);
//DisplayPack(i++);
}else if((IO0PIN&KEY_DOWN)==0){
IO0SET=LED_BL;
IO1SET=LED_FLASH;
//while((IO0PIN&KEY_DOWN)==0);
//DisplayPack(i--);
}
//if(i>3) i=0;
//if(i<0) i=3;
}
//*/
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -