亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spi.c

?? LCD 控制源代碼
?? C
字號:
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "spi.h"
#include "def.h"

#define spi_count 0x80
#define SPI_BUFFER _NONCACHE_STARTADDRESS

void __irq Spi_Int(void);
//void __irq Spi_M_Rx_Int(void);
//void __irq Spi_S_Tx_Int(void);
void __irq Dma1Tx_Int(void);
void __irq Dma1Rx_Int(void);

volatile char *spiTxStr,*spiRxStr;
volatile int endSpiTx;
volatile int tx_dma1Done;
volatile int rx_dma1Done;
unsigned int spi_rGPECON,spi_rGPEDAT,spi_rGPEUP;
unsigned int spi_rGPGCON,spi_rGPGDAT,spi_rGPGUP;


/****************************************************************
 *	             SMDK2400 SPI configuration                 *
 *  GPG2=nSS0, GPE11=SPIMISO0, GPE12=SPIMOSI0, GPE13=SPICLK0     *
 *  GPG3=nSS1, GPG5 =SPIMISO1, GPG6 =SPIMOSI1, GPG7 =SPICLK1      *
 *  SPI1 is tested by OS(WINCE). So, Only SPI0 is tested by this code          *               
 ****************************************************************/

void SPI_Port_Init(int MASorSLV)
{
    spi_rGPECON=rGPECON;
    spi_rGPEDAT=rGPEDAT;
    spi_rGPEUP=rGPEUP;
    rGPEUP&=~(0x3800);
    rGPEUP|=0x2000;
    rGPECON=((rGPECON&0xf03fffff)|0xa800000);

    spi_rGPGCON=rGPGCON;
    spi_rGPGDAT=rGPGDAT;
    spi_rGPGUP=rGPGUP;
    rGPGUP|=0x4;
    if(MASorSLV==1)
    {
        rGPGCON=((rGPGCON&0xffffffcf)|0x10); // Master(GPIO_Output)
        rGPGDAT|=0x4; // Activate nSS 
    }
    else
    	rGPGCON=((rGPGCON&0xffffffcf)|0x30); // Slave(nSS)
}

void SPI_Port_Return(void)
{
    rGPECON=spi_rGPECON;
    rGPEDAT=spi_rGPEDAT;
    rGPEUP=spi_rGPEUP;

    rGPGCON=spi_rGPGCON;
    rGPGDAT=spi_rGPGDAT;
    rGPGUP=spi_rGPGUP;
}


//////////////////////////////////////////////////
// Depends on the LTV350QV-F02(320x240) TFT LCD //
//////////////////////////////////////////////////
void cs_high(void)
{
	rGPGDAT |= 0x8;
	
}

void cs_low(void)
{
	rGPGDAT &= ~0x8;
}

void n_reset(void)
{

	rGPGDAT &= ~0x4;
	Delay(100);				// 100 us
	rGPGDAT |= 0x4;
    Delay(100);				// 100 us
 
	rGPGDAT &= ~0x4;
	Delay(100);				// 100 us
	rGPGDAT |= 0x4;
}

void spi_tx(unsigned char index, unsigned short data)
{
	int i=0, j; char tmp[6];

	// INDEX
	tmp[0]=0x74;
	tmp[1]=0x0;
	tmp[2]=(unsigned char)index;
	tmp[3]=0x76;
	tmp[4]=(unsigned char)((data&0xff00)>>8);
	tmp[5]=(unsigned char)((data&0x00ff)>>0);
	
	//SEND INDEX
	cs_low();
	for(i=0; i<6; i++) {
		rSPTDAT1=tmp[i];
		while(!(rSPSTA1&0x1)) ;
		if(i==2) {
			cs_high();
			//rSPCON1 &= ~(1<<4);	//dis-SCK
			Delay(5000);
			
			cs_low();
			//rSPCON1 |= (1<<4);	//dis-SCK
		}
	Uart_Printf("rSPTDAT1=0x%x\n",rSPTDAT1);
		
	}

	cs_high();
}


void SPI_LCD_Port_Init(void)
{
    spi_rGPGCON=rGPGCON;
    spi_rGPGDAT=rGPGDAT;
    spi_rGPGUP=rGPGUP;

	rGPGCON=((rGPGCON&0xffffffcf)|0x10); // Master(GPIO_Output)
	rGPGDAT|=0xc;    
    rGPGCON =((rGPGCON&0xffffff0f)|0x50);   //GPG3 CS, GPG2 RESET
}


void Tcon_Init(unsigned short data)
{
//Power On 
    //Delay(5000);
	//n_reset();
	//Delay(5000);
	
    spi_tx(0x07, 0x0000);
                     
    Delay(5000);                 
                     
    spi_tx(0x11, 0x000B);
    spi_tx(0x12, 0x0048);
    spi_tx(0x13, 0x7AFC);
                   
    spi_tx(0x10, 0x300C);
    spi_tx(0x11, 0x222B);
   
    Delay(5000);
                     
    spi_tx(0x12, 0x1968);
                     
    spi_tx(0x01, 0x021D);
    spi_tx(0x02, 0x0300);
    spi_tx(0x03, 0xF000);    //0xF000-- Enable(DE) Mode  0xF040-- WITHOUT Enable(DE) Mode
    spi_tx(0x08, 0x0006);
    spi_tx(0x09, 0x0018);
    spi_tx(0x0B, 0x0700);
                     
    spi_tx(0x0C, 0x0000);
    spi_tx(0x0D, 0x0000);
    spi_tx(0x0E, 0x0000);
    spi_tx(0x14, 0x0000);
    spi_tx(0x15, 0x0000);
    spi_tx(0x16, 0x0000);
    spi_tx(0x30, 0x0300);
    spi_tx(0x31, 0x0007);
    spi_tx(0x32, 0x0202);
    spi_tx(0x33, 0x0000);
    spi_tx(0x34, 0x0704);
    spi_tx(0x35, 0x0204);
    spi_tx(0x36, 0x0707);
    spi_tx(0x37, 0x0000);
    spi_tx(0x38, 0x1803);
    spi_tx(0x39, 0x1402);

 //Display On
    Delay(5000);
    spi_tx(0x07, 0x0001);
    Delay(5000);
    
    spi_tx(0x07, 0x0101);
    Delay(5000);
    
    spi_tx(0x07, 0x0103);
 
}


/*
void Tcon_Init(unsigned short data)
{
	n_reset();
	Delay(150);

	spi_tx(0x09, 0x0000);
	Delay(200);
	spi_tx(0x09, 0x4000);
	spi_tx(0x0a, 0x2000);
	Delay(10);
	spi_tx(0x09, 0x4055);
	Delay(1000);
	spi_tx(0x01, 0x409D);		// Sync Mode
	spi_tx(0x02, 0x0204);
	spi_tx(0x03, 0x0100);
	spi_tx(0x04, 0x3000);
	spi_tx(0x05, 0x4003);
	spi_tx(0x06, data);
	spi_tx(0x07, 0x0018);
	spi_tx(0x08, 0x0C00);
	spi_tx(0x10, 0x0103);
	spi_tx(0x11, 0x0301);
	spi_tx(0x12, 0x1F0F);
	spi_tx(0x13, 0x1F0F);
	spi_tx(0x14, 0x0707);
	spi_tx(0x15, 0x0307);
	spi_tx(0x16, 0x0707);
	spi_tx(0x17, 0x0000);
	spi_tx(0x18, 0x0004);
	spi_tx(0x19, 0x0000);
	Delay(1000);
	spi_tx(0x09, 0x4A55);
	spi_tx(0x05, 0x5003);
}
*/
void Spi_Lcd_Init(void)
{
	int i,j,k;
	char *txStr,*rxStr;
	char tmp[6];

	SPI_LCD_Port_Init(); 
	Uart_Printf("[SPI Polling TFT LCD TCON Initialize]\n");

	endSpiTx=0;

	spiTxStr= tmp+0;
	spiRxStr=(char *) SPI_BUFFER;
	txStr=(char *)spiTxStr;
	rxStr=(char *)spiRxStr;

	rSPPRE1=0x10;	//if PCLK=50Mhz,SPICLK=1.47Mhz
	rSPCON1=(0<<5)|(1<<4)|(1<<3)|(1<<2)|(1<<1)|(0<<0);//Polling,en-SCK,master,low,A,normal
	rSPPIN1=(0<<2)|(1<<1)|(0<<0);//dis-ENMUL,SBO,release

     Uart_Printf("111111111111111111\n");
  
	Tcon_Init(0x8);
	Delay(150);
	
	Uart_Printf("2222222222222222222\n");

	rSPCON1 &= ~(1<<4);	//dis-SCK

	SPI_Port_Return();

}
///////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕日韩一区| 国产精品国产三级国产| 欧美日韩一二区| 色噜噜夜夜夜综合网| 99视频一区二区三区| 91香蕉国产在线观看软件| 国产成人精品1024| 成人高清av在线| 97久久超碰精品国产| av网站一区二区三区| 91蜜桃在线免费视频| 91国偷自产一区二区开放时间 | 欧美在线观看18| 欧美日韩精品一二三区| 欧美一级黄色片| 久久色在线观看| 日本一区二区成人| 伊人一区二区三区| 美女在线一区二区| 成人开心网精品视频| 在线看一区二区| 日韩欧美国产电影| 亚洲三级电影网站| 日日夜夜免费精品视频| 国产在线播放一区| 一道本成人在线| 日韩一区二区在线看| 中文字幕一区二| 日本vs亚洲vs韩国一区三区二区| 国产盗摄精品一区二区三区在线 | 欧美乱妇一区二区三区不卡视频| 日韩天堂在线观看| 亚洲日本电影在线| 裸体歌舞表演一区二区| 91麻豆精品秘密| 精品国产人成亚洲区| 亚洲一区二区三区在线看| 美女网站一区二区| 色嗨嗨av一区二区三区| 26uuu国产在线精品一区二区| 亚洲欧洲精品一区二区三区| 美脚の诱脚舐め脚责91| 色婷婷综合久久久久中文一区二区| 日韩免费高清视频| 亚洲国产欧美在线| 99国产精品视频免费观看| 欧美大片日本大片免费观看| 一区二区三区 在线观看视频| 国产精品1024| 日韩欧美123| 亚洲va欧美va天堂v国产综合| proumb性欧美在线观看| 日韩欧美国产一区在线观看| 亚洲一二三四久久| av亚洲产国偷v产偷v自拍| 精品日韩欧美一区二区| 日韩综合小视频| 欧美在线一二三| 亚洲日本va午夜在线影院| 成人av影院在线| 久久九九全国免费| 久久精品国产精品亚洲红杏| 欧美精品v国产精品v日韩精品| 亚洲一区二区成人在线观看| 91香蕉视频污在线| 亚洲欧美二区三区| 91天堂素人约啪| 亚洲精品综合在线| 91国产福利在线| 亚洲视频每日更新| 99国产一区二区三精品乱码| 亚洲视频在线一区| 色婷婷综合久久久久中文一区二区 | 成人的网站免费观看| 国产日本一区二区| 国产69精品久久久久毛片| 久久久精品日韩欧美| 国产一区二区三区四| 亚洲精品在线电影| 国产白丝网站精品污在线入口| 国产农村妇女精品| av在线这里只有精品| 又紧又大又爽精品一区二区| 欧美图片一区二区三区| 天堂久久一区二区三区| 日韩精品中文字幕一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 久久久精品综合| 色综合久久88色综合天天6| 亚洲午夜免费电影| 日韩一区二区三区av| 国产成人亚洲综合a∨婷婷| 国产精品久久久久影院亚瑟| 欧美在线免费视屏| 久草在线在线精品观看| 国产精品欧美精品| 欧美综合久久久| 激情综合网av| 亚洲同性同志一二三专区| 欧美日韩精品欧美日韩精品一| 久久精品国产澳门| 亚洲三级在线免费观看| 日韩片之四级片| www.av亚洲| 麻豆91在线播放免费| 亚洲欧美综合另类在线卡通| 在线观看91av| 99re这里都是精品| 毛片av中文字幕一区二区| 日本一区二区三区高清不卡| 欧美日韩一区高清| 国产成人日日夜夜| 日韩国产欧美在线播放| 国产精品久久国产精麻豆99网站| 欧美日韩二区三区| www.亚洲人| 韩国午夜理伦三级不卡影院| 一区二区三区免费在线观看| 久久久久青草大香线综合精品| 在线观看亚洲一区| 成人免费精品视频| 激情亚洲综合在线| 亚洲一区二区黄色| 亚洲欧美偷拍三级| 欧美国产欧美亚州国产日韩mv天天看完整 | 亚洲精品乱码久久久久久日本蜜臀| 欧美一区二区三区精品| 色综合久久天天| 波多野结衣中文字幕一区二区三区 | 久久久久久久久久久99999| 在线精品视频一区二区三四| 国产69精品久久久久777| 久久精工是国产品牌吗| 天堂精品中文字幕在线| 亚洲国产精品麻豆| 一区二区三区日本| 亚洲欧美一区二区三区孕妇| 欧美国产日韩亚洲一区| 国产日本亚洲高清| 欧美成人一区二区三区片免费 | 天天色综合成人网| 亚洲午夜av在线| 亚洲永久免费av| 夜夜夜精品看看| 亚洲激情av在线| 亚洲一区二区三区四区五区黄 | 成人国产在线观看| 国产精品性做久久久久久| 理论电影国产精品| 韩国欧美一区二区| 狠狠色综合播放一区二区| 国产综合久久久久久鬼色 | 在线观看视频欧美| 欧美优质美女网站| 欧美视频三区在线播放| 欧美色偷偷大香| 在线成人免费视频| 精品欧美乱码久久久久久1区2区| 日韩欧美高清在线| 国产欧美日韩在线观看| 国产精品久久毛片| 亚洲日本在线视频观看| 亚洲一区二区av电影| 亚洲电影激情视频网站| 麻豆精品一区二区综合av| 狠狠色综合日日| www.亚洲人| 制服丝袜中文字幕一区| 欧美电影精品一区二区| 亚洲国产精品t66y| 亚洲一区免费在线观看| 免费看日韩a级影片| 国产精品69毛片高清亚洲| 99久久精品免费看国产| 欧美日韩激情在线| 精品成a人在线观看| 中文字幕高清不卡| 视频在线在亚洲| 成人丝袜视频网| 欧美日本在线观看| 国产日韩欧美a| 天堂在线一区二区| 成人激情图片网| 欧美一级专区免费大片| 国产精品麻豆久久久| 亚洲第四色夜色| 成人福利电影精品一区二区在线观看| 精品视频在线免费观看| 欧美电影精品一区二区| 一区二区三区四区在线| 狠狠色狠狠色综合系列| 欧洲另类一二三四区| 久久久久久久久岛国免费| 亚洲一区二区三区中文字幕在线| 国产专区欧美精品| 91麻豆精品国产91久久久更新时间| 中文字幕的久久| 毛片不卡一区二区| 欧美少妇bbb| 椎名由奈av一区二区三区|