?? tftdriver.c
字號:
/*------------------------------------------------------------------------------
// TFTdriver.C
//
// TFT LCD: CASIO CMD777
// Min flash rate : 50Hz
//
------------------------------------------------------------------------------*/
#include "Main.h"
#include "TFTdriver.h"
#include "Delay.h"
extern unsigned char *Bmp_Buffer;
void Test_TFT_Lcd(void)
{
unsigned int i;
unsigned char value;
Init_TFT_Port();
CLR_FLM_FP();
CLR_CL1_LP();
CLR_CL2_CP();
delay_1ms();
while(1)
{
// TFT_clear_screen(0x00249249); // 0 is off,1 is on
TFT_show_screen(Bmp_Buffer);
}
}
void Init_TFT_Port(void)
{
//TFT LCD PORT INIT
DDRD = 0xFF; //PORTD output for TFT LCD control signal
DDRB = 0xFF; //PORTB output for TFT LCD data signal
SET_C_VLCD_VCCFL();
SET_DISPLAY_ON_OFF();
}
///////////////////////////////////////////////////////////////////////////////
//圖形化處理
///////////////////////////////////////////////////////////////////////////////
//用固定顏色清除整屏
void TFT_clear_screen(unsigned long color)
{
unsigned char i,j;
unsigned char a,b,c;
SET_FLM_FP(); // Start-up signal
a=(color&0xFF0000)>>16;
b=(color&0xFF00)>>8;
c=color&0xFF;
delay_500us();
delay_200us();
j=40;
do // 320*3/8 = 120/3 =40
{
PORTB=a;
SET_CL2_CP();
NOP();
CLR_CL2_CP(); // CL2大于500ns
NOP();
PORTB=b;
SET_CL2_CP();
NOP();
CLR_CL2_CP(); // CL2大于500ns
NOP();
PORTB=c;
SET_CL2_CP();
j--;
NOP();
CLR_CL2_CP(); // CL2大于500ns
}while(j);
SET_CL1_LP();
CLR_CL1_LP(); // CL1大于150ns
CLR_FLM_FP();
for (i=1;i<=240;i++)
{
j=40;
do // 320*3/8 = 120/3 = 40
{
PORTB=a;
SET_CL2_CP();
NOP();
CLR_CL2_CP(); // CL2大于500ns
NOP();
PORTB=b;
SET_CL2_CP();
NOP();
CLR_CL2_CP(); // CL2大于500ns
NOP();
PORTB=c;
SET_CL2_CP();
j--;
NOP();
CLR_CL2_CP(); // CL2大于500ns
}while(j);
SET_CL1_LP();
CLR_CL1_LP();
}
}
//整屏顯示圖像
void TFT_show_screen(unsigned char *buff)
{
unsigned char i,j;
unsigned int k=0;
SET_FLM_FP();
delay_500us();
delay_200us();
j=0;
do
{
PORTB=*(buff+k);
SET_CL2_CP();
k++;
CLR_CL2_CP();
j++;
}while(j<120); // 320*3/8 = 120
SET_CL1_LP();
CLR_CL1_LP();
CLR_FLM_FP();
for (i=1;i<=240;i++)
{
j=0;
do
{
PORTB=*(buff+k);
SET_CL2_CP();
k++;
CLR_CL2_CP();
j++;
}while(j<120); // 320*3/8 = 120
SET_CL1_LP();
CLR_CL1_LP();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -