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

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

?? uda1341.c

?? 三星的44b0的LCD驅動,可在ADS開發環境編譯通過.利用開發板下載調試
?? C
字號:
#include "..\inc\option.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\def.h"
#include "..\inc\uda1341.h"

void _WrL3Addr(U8 data);
void _WrL3Data(U8 data,int halt);

static void __irq Timer2(void);
static void __irq SioLJF16Int(void);
static void __irq Uart0_RxInt(void);

#define L3M (0x20)
#define L3D (0x40)
#define L3C (0x80)
#define WS  (0x10)

volatile U16 *leftBufPt;
volatile U16 *leftBufPtStart;
volatile U16 *leftBufPtEnd;
volatile U16 *rightBufPt;
volatile U16 *rightBufPtStart;
volatile U16 *rightBufPtEnd;
volatile U32	sample;

volatile static char LEFT;
volatile unsigned char FLAG;

void Init1341(void)
{
	/*****Timer configuration*****/
    //rTCFG=0x300000;??
    //pres0,pres1=0, Timer0,1=1/4, Timer2=TCLK

	/*****Port A configuration*****/
    //RXD0 TXD0 SIOCK_O SIORXD PA5_O(WS) SIOTXD0 TCLK PA2_O PA1_O TOUT0
    //  10   10     011    011        01      10   10    01    01    10
    rPCONA=0x29b696;
    //rPUPA=0x3ff;	

	/*****Port G configuration*****/
    //PG7_O(L3C) PG6_O(L3D) PG5_O(L3M) PG4_O EINT3 EINT2 PG1_O EINT0
    //   01         01          01       01    10    10    01    10  
    rPCONG=0x55a6;
    rPDATG |= L3C|L3M;

	/*****ISR SIO & Timer2*****/
    pISR_SIO=(unsigned)SioLJF16Int;
	pISR_TIMER2=(unsigned)Timer2;

	/*****Enable Inerrupt source SIO & Timer2*****/
    rINTMSK=~(BIT_GLOBAL|BIT_SIO|BIT_TIMER2);

	/*****SIO configuration*****/
    rSBRDR=7; //50M/2/(P+1)=3.125M(Max value)
    rIVTCNT=0x1;

	/*****L3 Interface*****/
    _WrL3Addr(0x14+2); //status (000101xx+10)
#ifdef FS441KHZ
    _WrL3Data(0x62,0); //0,1,10,001,0 reset,256fs,no DCfilter,LJF16
#else
	_WrL3Data(0x42,0); //0,1,00,001,0 reset,512fs,no DCfilter,LJF16
#endif

    _WrL3Addr(0x14+2); //status (000101xx+10)
#ifdef FS441KHZ
	_WrL3Data(0x22,0); //0,0,10,001,0 no reset,256fs,no DCfilter,LJF16
#else
    _WrL3Data(0x02,0); //0,0,00,001,0 no reset,512fs,no DCfilter,LJF16
#endif
    
    _WrL3Addr(0x14+2); //status (000101xx+10)
    _WrL3Data(0x83,0);
    // 1,0,0,0,0,0,11 OGS=0,IGS=0,ADC_NI,DAC_NI,sngl speed,AonDon
}

#define TESTSIZE 100000
void Test1341(void)
{
	int i;
    S16 lBuf[TESTSIZE],rBuf[TESTSIZE];

    for(i=0;i<TESTSIZE/2 ;i++)
    {
        lBuf[i]=i*(40000/(TESTSIZE/2))-20000;	//y=(4/5)*x-2000
        rBuf[i]=i*(40000/(TESTSIZE/2))-20000;
        lBuf[i+TESTSIZE/2]=(TESTSIZE/2-i)*(40000/(TESTSIZE/2))-20000;//y=(50000-x)4/5-2000
        rBuf[i+TESTSIZE/2]=(TESTSIZE/2-i)*(40000/(TESTSIZE/2))-20000;
    }

    leftBufPt=(U16 *)&lBuf[0];
    leftBufPtStart=(U16 *)&lBuf[0];
    leftBufPtEnd=(U16 *)&lBuf[TESTSIZE];
    rightBufPt=(U16 *)&rBuf[0];
    rightBufPtStart=(U16 *)&rBuf[0];


    Init1341();
    Play1341();
    while(1)
    {
    	//Uart_Printf("Ti=%d,Si=%d\n",dbg_ti,dbg_si);
    }
}
/*
void PlayWav(U32 sample,S16 *lBuf,S16 *rBuf,U32 freq)
{
    Uart_Printf("[]Play the decoded .WAV file\n");

    leftBufPt=(U16 *)lBuf;
    leftBufPtStart=(U16 *)lBuf;
    leftBufPtEnd=(U16 *)&lBuf[sample];
    rightBufPt=(U16 *)rBuf;
    rightBufPtStart=(U16 *)rBuf;

    Init1341();
    Play1341();
    while(1)
    {
    	//Uart_Printf("Ti=%d,Si=%d\n",dbg_ti,dbg_si);
    }
}*/
void PlayWav(void)
{
    int i;
	
	LEFT=0;
	FLAG=0;
    leftBufPt=(U16 *)0xc280000;
	leftBufPtEnd=(U16 *)0xc280000;
    rightBufPt=(U16 *)0xc500000;
	rightBufPtEnd=(U16 *)0xc500000;

	/*****START For Download*****/

	rINTCON=0x5;
	rINTMOD=0x0;
	rINTMSK=~(BIT_URXD0 | BIT_GLOBAL);
    pISR_URXD0=(unsigned)Uart0_RxInt;
    Uart_Init(0,115200);
	Uart_Printf("Now test UDA1341\n");
	Uart_Printf("Download the wave file via wkcom2 utility no header and no checksum!!\n");

	while(LEFT!=3)
    {
		Uart_Printf("%d,", LEFT);
		for(i=0;i<4;i++)
		{
			Led_Display(1<<i);
			Delay(500);
		}
		Delay(700);
		for(i=0;i<4;i++)
		{
			Led_Display(8>>i);
			Delay(500);
		}
		Delay(700);
    }

    sample=*leftBufPt | *rightBufPt<<16;
		
		
		
		//*((leftBufPt+0))|(*((leftBufPt+1))<<8)|(*((rightBufPt+0))<<16)|(*((rightBufPt+1))<<24);

	Uart_Printf("\nNow, Downloading... [SAMPLESIZE:%7d(      0)",sample);

    while(((int)rightBufPtEnd-(int)rightBufPt+(int)leftBufPtEnd-(int)leftBufPt)<sample)
    	Uart_Printf("\b\b\b\b\b\b\b\b%7d)",((int)rightBufPtEnd-(int)rightBufPt+(int)leftBufPtEnd-(int)leftBufPt));
    Uart_Printf("\b\b\b\b\b\b\b\b%7d)\n",((int)rightBufPtEnd-(int)rightBufPt+(int)leftBufPtEnd-(int)leftBufPt));
									
			/*****END For Download*****/

    Uart_Printf("\n[]Now play the wave file\n");	

    leftBufPtStart=(U16 *)0xc280002;
    leftBufPt=(U16 *)0xc280002;
    leftBufPtEnd=leftBufPtStart+sample/2;
	rightBufPt=(U16 *)0xc500002;
    rightBufPtStart=(U16 *)0xc500002;

    Init1341();
    Play1341();
    while(1)
    {
    	//Uart_Printf("Ti=%d,Si=%d\n",dbg_ti,dbg_si);
    }
}

void Play1341(void)
{

#ifdef FS441KHZ
    rTCNTB2=255;    // 11289600/44100=256-1;
#else
    rTCNTB2=511;    // 11289600/22050=512-1;
#endif

    rTCON=(0xa<<12)|0x9; //Timer2:interval,manual update
    rTCON=(0x9<<12)|0x9; //Timer2:interval,start
}

void Stop1341(void)
{
    rTCON=(0x8<<12); //Timer2:interval,stop
}

void _WrL3Addr(U8 data)
{
    U32 vPdatg = rPDATG & 0x1f;	//All(M/D/C)=L
    S32 i,j;
    rPDATG = vPdatg | L3C;	//L3C=H
    for(j=0;j<4;j++); //tsu(L3)=190ns
    //PG5:L3MODE PG6:L3DATA PG7:L3CLOCK
    for(i=0;i<8;i++)
    {
        if(data&0x1)
        {
            rPDATG=vPdatg|L3D;  //L3C=L
            for(j=0;j<3;j++); //tcy=300ns
            rPDATG=vPdatg|L3C|L3D;  //L3C=H
            for(j=0;j<3;j++); //tcy=300ns
        }
        else
        {
            rPDATG=vPdatg;  //L3C=L
            for(j=0;j<3;j++); //tcy=300ns
            rPDATG=vPdatg|L3C;  //L3C=H
            for(j=0;j<3;j++); //tcy=300ns
        }
        data >>= 1;
    }
    rPDATG=vPdatg|L3M|L3C;
}

void _WrL3Data(U8 data,int halt)
{
    U32 vPdatg=rPDATG & 0x1f;
    S32 i,j;
    if(halt)
    {
        rPDATG=vPdatg|L3C;
        for(j=0;j<4;j++); //tstp(L3)=190ns
    }
    rPDATG=vPdatg|L3M|L3C;
    for(j=0;j<4;j++); //tsu(L3)D=190ns

    //PA1:L3MODE PA2:L3DATA PA3:L3CLOCK
    for(i=0;i<8;i++)
    {
        if(data&0x1)
        {
            rPDATG=vPdatg|L3D|L3M;  //L3C=L
            for(j=0;j<3;j++); //tcy=300ns
            rPDATG=vPdatg|L3C|L3D|L3M;  //L3C=H
            for(j=0;j<3;j++); //tcy=300ns
        }
        else
        {
            rPDATG=vPdatg|L3M;  //L3C=L
            for(j=0;j<3;j++); //tcy=300ns
            rPDATG=vPdatg|L3C|L3M;  //L3C=H
            for(j=0;j<3;j++); //tcy=300ns
        }
        data>>=1;
    }
    rPDATG=vPdatg|L3M|L3C;
}

static U8 sioBuf[4];
static int bufPt=0;
void _WrSioLJF16(U16 left,U16 right)
{
    sioBuf[0]=(left>>8)&0xff;
    sioBuf[1]=left&0xff;
    sioBuf[2]=(right>>8)&0xff;
    sioBuf[3]=right&0xff;

    rPDATG|=WS;

    rSIOCON=1|(0<<2)|(0<<4)|(1<<5)|(0<<6);
            //interrupt mode,auto run,falling,tx/rx,MSB first,internal clk
    rSIODAT=sioBuf[0];
    bufPt=1;
    rSIOCON|=(1<<3);
}

static void __irq SioLJF16Int(void)
{
    rI_ISPC=BIT_SIO;
    //rI_ISPC; //is needed only when cache=on & wrbuf=on & BSFRD=0
    switch(bufPt)
    {
        case 1:
            rSIODAT=sioBuf[1];
            rSIOCON=1|(0<<2)|(0<<4)|(1<<5)|(0<<6) |(1<<3);
            bufPt=2;
            break;
        case 2:
            rPDATG&=~WS;
            rSIODAT=sioBuf[2];
            rSIOCON=1|(0<<2)|(0<<4)|(1<<5)|(0<<6) |(1<<3);
            bufPt=3;
            break;
        case 3:
            rSIODAT=sioBuf[3];
            rSIOCON=1|(0<<2)|(0<<4)|(1<<5)|(0<<6) |(1<<3);
            bufPt=4;
            break;
        case 4:
            rPDATG|=WS;
            break;
    }
}

static void __irq Timer2(void)
{
	rI_ISPC=BIT_TIMER2;
    //rI_ISPC; //is needed only when cache=on & wrbuf=on & BSFRD=0
    _WrSioLJF16(*leftBufPt++,*rightBufPt++);
    if(leftBufPt==leftBufPtEnd)
    {
        leftBufPt=leftBufPtStart;
        rightBufPt=rightBufPtStart;
    }
}

void __irq Uart0_RxInt(void)
{
    rI_ISPC=BIT_URXD0 ;   //clear pending bits,Default value=0x0000000
    //rI_ISPC;		  //is needed only when cache=on & wrbuf=on & BSFRD=0
	if(LEFT != 100)
	{
		if(LEFT<2)
		{
			*((U8 *)leftBufPtEnd++)=RdURXH0();
			LEFT++;
		}
		else
		{
			*((U8 *)rightBufPtEnd++)=RdURXH0();
			LEFT++;
			if(LEFT==3)
				LEFT=0;
			if(((int)rightBufPtEnd-(int)rightBufPt)==sample/4)
				LEFT=100;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片在线不卡一二三区 | 国产偷v国产偷v亚洲高清| 国产精品人人做人人爽人人添| 亚洲一区视频在线观看视频| 国产麻豆日韩欧美久久| 欧美女孩性生活视频| 一色桃子久久精品亚洲| 精品一区二区三区在线视频| 日本久久电影网| 中文字幕乱码一区二区免费| 精品亚洲porn| 欧美高清一级片在线| 亚洲精品欧美激情| 成人免费观看视频| 国产亚洲精品bt天堂精选| 午夜电影一区二区| 色呦呦网站一区| 中文字幕在线观看不卡视频| 国内精品在线播放| 欧美成人艳星乳罩| 秋霞av亚洲一区二区三| 欧美亚洲图片小说| 亚洲欧美国产毛片在线| 成人av资源下载| 欧美经典一区二区三区| 国产精品18久久久久久vr| 日韩欧美一区二区不卡| 青青国产91久久久久久| 欧美一区二区三区播放老司机| 亚洲国产综合在线| 欧美日韩黄视频| 亚洲高清免费一级二级三级| 欧美天堂一区二区三区| 夜夜嗨av一区二区三区网页| 91国产免费看| 亚洲成人av免费| 欧美性大战久久| 午夜精品视频一区| 91.xcao| 日本va欧美va精品| 欧美不卡一二三| 久久99最新地址| 久久久久国色av免费看影院| 国产精品白丝jk黑袜喷水| 日本一区二区三区视频视频| 成人av影院在线| 最新国产の精品合集bt伙计| 色婷婷av一区二区三区大白胸| 一区二区三区美女| 欧美日韩第一区日日骚| 精品一区二区三区影院在线午夜 | 91丨porny丨蝌蚪视频| 日韩毛片一二三区| 欧美日韩国产天堂| 美腿丝袜一区二区三区| 欧美国产亚洲另类动漫| 一本色道久久综合狠狠躁的推荐| 亚洲香肠在线观看| 日韩欧美美女一区二区三区| 成人综合在线视频| 一区二区三区加勒比av| 日韩午夜激情av| 成人黄色大片在线观看| 亚洲国产日韩a在线播放性色| 日韩美女在线视频| 97久久久精品综合88久久| 亚洲午夜影视影院在线观看| 精品国产百合女同互慰| 99久久精品国产导航| 日韩黄色免费电影| 亚洲国产精品传媒在线观看| 欧美理论片在线| 成人激情小说乱人伦| 婷婷亚洲久悠悠色悠在线播放| 久久久久久电影| 欧美视频三区在线播放| 国产成都精品91一区二区三| 午夜一区二区三区视频| 国产日韩亚洲欧美综合| 欧美美女bb生活片| www.欧美亚洲| 久久er99精品| 亚洲h动漫在线| 亚洲欧洲日韩在线| 欧美mv日韩mv| 欧美日韩成人一区| 91影视在线播放| 国产一区二区按摩在线观看| 午夜激情综合网| 亚洲欧美成人一区二区三区| 亚洲精品一线二线三线| 在线播放中文一区| 在线观看网站黄不卡| 国产suv精品一区二区6| 麻豆91在线播放免费| 亚洲国产视频网站| 综合激情网...| 国产精品污网站| 26uuu欧美日本| 欧美一区二区免费视频| 欧美艳星brazzers| 一本久久精品一区二区| 高清视频一区二区| 国产麻豆精品95视频| 精品一区二区三区免费播放| 秋霞电影一区二区| 偷拍日韩校园综合在线| 亚洲国产精品久久不卡毛片| 亚洲美女视频在线观看| 日韩理论在线观看| 亚洲人成伊人成综合网小说| 国产精品乱子久久久久| 国产欧美日韩综合| 欧美激情艳妇裸体舞| 欧美激情综合五月色丁香| 久久精品欧美日韩| 欧美国产综合一区二区| 国产欧美精品一区二区三区四区| 国产视频一区二区在线| 国产欧美日韩不卡| 最新国产精品久久精品| 成人免费在线播放视频| 亚洲人成小说网站色在线| 亚洲精品久久7777| 亚洲chinese男男1069| 亚洲高清一区二区三区| 亚洲成人激情自拍| 日产欧产美韩系列久久99| 免费在线视频一区| 国内一区二区视频| 成人小视频在线观看| a4yy欧美一区二区三区| 色88888久久久久久影院按摩| 日本精品一区二区三区高清| 欧美色欧美亚洲另类二区| 69堂成人精品免费视频| 精品国产一区二区三区av性色| 久久奇米777| 综合婷婷亚洲小说| 日韩综合在线视频| 国产精品中文字幕一区二区三区| 国产寡妇亲子伦一区二区| fc2成人免费人成在线观看播放| 91麻豆免费在线观看| 91精品国产一区二区三区蜜臀 | 国产精品网站在线| 一区二区三区精品| 麻豆成人91精品二区三区| 午夜视频一区在线观看| 国产一区二区三区免费观看| 色婷婷久久99综合精品jk白丝| 欧美精品丝袜中出| 国产精品色一区二区三区| 亚洲一级二级在线| 国产一区二区三区不卡在线观看| 日本精品视频一区二区| 日韩三区在线观看| 亚洲欧美二区三区| 国产一区二区三区日韩| 在线一区二区观看| 国产日韩欧美亚洲| 日本欧美肥老太交大片| 99视频有精品| 日韩精品一区二区在线观看| 亚洲精品成人少妇| 国产精品123| 欧美va亚洲va国产综合| 亚洲一二三专区| 成人免费va视频| 日韩欧美的一区| 亚洲成av人片在线| av一区二区不卡| 久久婷婷国产综合国色天香| 亚欧色一区w666天堂| 不卡的av中国片| 久久久久国产成人精品亚洲午夜| 亚洲图片欧美色图| 91首页免费视频| 中文字幕不卡在线观看| 麻豆成人av在线| 欧美精品v日韩精品v韩国精品v| 亚洲人xxxx| jvid福利写真一区二区三区| 国产日韩欧美精品在线| 精品一区二区三区不卡| 欧美精品在线观看播放| 亚洲一区二区三区激情| 91免费国产在线| 日韩久久一区二区| 成人av第一页| 国产日本一区二区| 国产乱码精品一区二区三| 久久综合成人精品亚洲另类欧美| 日产欧产美韩系列久久99| 欧美精品久久一区| 日韩电影一区二区三区| 欧美精品aⅴ在线视频| 午夜av一区二区| 91麻豆精品国产91久久久久久久久 | 成人黄色免费短视频|