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

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

?? dm642main.c

?? TMS320C6000,DSP6000系列DM642芯片
?? C
字號:
/********************************************************************/
/*  Copyright 2004 by SEED Incorporated.							*/
/*  All rights reserved. Property of SEED Incorporated.				*/
/*  Restricted rights to use, duplicate or disclose this code are	*/
/*  granted through contract.									    */
/*  															    */
/********************************************************************/


/********************************************************************/
/*                        灰度圖                                    */
/********************************************************************/


#include <csl.h>
#include <csl_emifa.h>
#include <csl_i2c.h>
#include <csl_gpio.h>
#include <csl_irq.h>
#include <csl_chip.h>
#include <csl_dat.h>
#include "iic.h"
#include "vportcap.h"
#include "vportdis.h"
#include "sa7121h.h"
#include "TVP51xx.h"
#include "seeddm642.h"


/*SEEDDM642的emifa的設置結構*/
EMIFA_Config Seeddm642ConfigA ={
	   0x00052078,/*gblctl EMIFA(B)global control register value */
	   			  /*將CLK6、4、1使能;將MRMODE置1;使能EK2EN,EK2RATE*/
	   0xffffffd3,/*cectl0 CE0 space control register value*/
	   			  /*將CE0空間設為SDRAM*/
	   0x73a28e01,/*cectl1 CE1 space control register value*/
	   			  /*Read hold: 1 clock;
	   			    MTYPE : 0000,選擇8位的異步接口
	   			    Read strobe :001110;14個clock寬度
	   			    TA:2 clock; Read setup 2 clock;
	   			    Write hold :2 clock; Write strobe: 14 clock
	   			    Write setup :7 clock
	   			    --					 ---------------
	   			  	  \		 14c		/1c
	   			 	   \----------------/ */
	   0x22a28a22, /*cectl2 CE2 space control register value*/
       0x22a28a42, /*cectl3 CE3 space control register value*/
	   0x57115000, /*sdctl SDRAM control register value*/
	   0x0000081b, /*sdtim SDRAM timing register value*/
	   0x001faf4d, /*sdext SDRAM extension register value*/
	   0x00000002, /*cesec0 CE0 space secondary control register value*/
	   0x00000002, /*cesec1 CE1 space secondary control register value*/
	   0x00000002, /*cesec2 CE2 space secondary control register value*/
	   0x00000073 /*cesec3 CE3 space secondary control register value*/	
};

/*SEEDDM642的IIC的設置結構*/
I2C_Config SEEDDM642IIC_Config = {
    0,  /* master mode,  i2coar;采用主模式   */
    0,  /* no interrupt, i2cimr;只寫,不讀,采用無中斷方式*/
    (20-5), /* scl low time, i2cclkl;  */
    (20-5), /* scl high time,i2cclkh;  */
    1,  /* configure later, i2ccnt;*/
    0,  /* configure later, i2csar;*/
    0x4ea0, /* master tx mode,     */
            /* i2c runs free,      */
            /* 8-bit data + NACK   */
            /* no repeat mode      */
    (75-1), /* 4MHz clock, i2cpsc  */
};

CHIP_Config SEEDDM642percfg = {
	CHIP_VP2+\
	CHIP_VP1+\
	CHIP_VP0+\
	CHIP_I2C
};

I2C_Handle hSeeddm642i2c;
int portNumber;
extern SA7121H_ConfParams sa7121hPAL[45];
extern SA7121H_ConfParams sa7121hNTSC[45];
Uint8 vFromat = 0;
Uint8 misc_ctrl = 0x6D;
Uint8 output_format = 0x47;
// 地址為0 for cvbs port1,選擇復合信號做為輸入
Uint8 input_sel = 0x00;
/*地址為0xf,將Pin27設置成為CAPEN功能*/	
Uint8 pin_cfg = 0x02;
/*地址為1B*/
Uint8 chro_ctrl_2 = 0x14;
/*圖像句柄的聲明*/
VP_Handle vpHchannel0;
VP_Handle vpHchannel1;
VP_Handle vpHchannel2;

/*確定圖像的參數*/
int numPixels = 720;//每行720個像素
int numLines  = 576;//每幀576行(PAL)


/*確定處理的范圍*/
/*A             */
/*              */
/*             D*/ 
int intAPixels = 190;
int intALines = 59;
int intDPixels = 530;
int intDLines = 229; 

/******************************/
/*****畫矩形邊框函數的聲明*****/
void drawRectangle();
/*消去彩色*/
void removeColor();

/*采集與顯示緩沖區的首址*/
Uint32 capYbuffer  = 0x80000000;
Uint32 capCbbuffer = 0x800675c0;
Uint32 capCrbuffer = 0x8009b0a0;

Uint32 disYbuffer  = 0x80100000;
Uint32 disCbbuffer = 0x801675c0; 
Uint32 disCrbuffer = 0x8019b0a0;

Uint32 tempYbuffer  = 0x80200000;   //臨時
Uint32 tempCbbuffer = 0x80300000;   //臨時 
Uint32 tempCrbuffer = 0x80400000;   //臨時

/*圖像格式標志*/
Uint8 NTSCorPAL = 0;
extern far void vectors();
extern volatile Uint32 capNewFrame;
extern volatile Uint32 disNewFrame;

/*此程序可將四個采集口的數據經過Video Port0送出*/
void main()
{
	Uint8 addrI2C;
	int i;	
	
/*-------------------------------------------------------*/
/* perform all initializations                           */
/*-------------------------------------------------------*/
	/*Initialise CSL,初始化CSL庫*/
	CSL_init();
	CHIP_config(&SEEDDM642percfg);
/*----------------------------------------------------------*/
	/*EMIFA的初始化,將CE0設為SDRAM空間,CE1設為異步空間
	 注,DM642支持的是EMIFA,而非EMIF*/
	EMIFA_config(&Seeddm642ConfigA);
/*----------------------------------------------------------*/
	/*中斷向量表的初始化*/
	//Point to the IRQ vector table
    IRQ_setVecs(vectors);
    IRQ_nmiEnable();
    IRQ_globalEnable();
    IRQ_map(IRQ_EVT_VINT1, 11);
    IRQ_map(IRQ_EVT_VINT0, 12);
    IRQ_reset(IRQ_EVT_VINT1);
    IRQ_reset(IRQ_EVT_VINT1);
    /*打開一個數據拷貝的數據通路*/
    DAT_open(DAT_CHAANY, DAT_PRI_LOW, DAT_OPEN_2D);	
/*----------------------------------------------------------*/	
	/*進行IIC的初始化*/
	hSeeddm642i2c = I2C_open(I2C_PORT0,I2C_OPEN_RESET);
	I2C_config(hSeeddm642i2c,&SEEDDM642IIC_Config);
/*----------------------------------------------------------*/
	/*進行TVP5150pbs的初始化*/
	/*選擇TVP5150,設置第三通路*/
	GPIO_RSET(GPGC,0x0);/*將GPIO0不做為GPINT使用*/
	GPIO_RSET(GPDIR,0x1);/*將GPIO0做為輸出*/
	GPIO_RSET(GPVAL,0x0);/*GPIO0輸出為高,選擇IIC1總線,配置
						   第二路,即為U21*/
	addrI2C = 0xBA >>1;
    _IIC_write(hSeeddm642i2c, addrI2C,0x00, input_sel);
    _IIC_write(hSeeddm642i2c, addrI2C,0x03, misc_ctrl);
    _IIC_write(hSeeddm642i2c, addrI2C,0x0D, output_format);
    _IIC_write(hSeeddm642i2c, addrI2C,0x0F, pin_cfg);
    _IIC_write(hSeeddm642i2c, addrI2C,0x1B, chro_ctrl_2);
    /*回讀當前攝像設備的格式*/
    _IIC_read(hSeeddm642i2c, addrI2C,0x8c, &vFromat);
    vFromat = vFromat & 0xff;
	switch (vFromat)
	{
		case TVP51XX_NTSCM:
		case TVP51XX_NTSC443:
			NTSCorPAL = 1;/*系統為NTSC的模式*/
			break;
		case TVP51XX_PALBGHIN:
		case TVP51XX_PALM:
			NTSCorPAL = 0;/*系統為PAL的模式*/
			break;
		default:
			NTSCorPAL = 2;/*系統為不支持的模式*/
			break;
	}
	if(NTSCorPAL ==2)
	{
		/*系統不支持的模式,重新配置*/
		for(;;)
		{}
	}  		  
/*----------------------------------------------------------*/	
	/*進行SAA7121H的初始化*/
	GPIO_RSET(GPVAL,0x0);/*GPIO0輸出為低,選擇IIC1總線,配置圖像輸出*/						  
	addrI2C = 0xB8 >>1; /*選擇第0路的I2C的地址*/
	/*將第0路的視頻輸入口的數據口設為高阻狀態,
	  使能SCLK,將第27腳設為輸入*/
	_IIC_write(hSeeddm642i2c, addrI2C,0x03, 0x1);
	/*配置SAA7121H*/
	GPIO_RSET(GPVAL,0x1);/*GPIO0輸出為低,選擇IIC1總線,配置圖像輸出*/	
	/*初始化Video Port0*/
	/*將Vedio Port1設為encoder輸出*/
	portNumber = 0;
	vpHchannel0 = bt656_8bit_ncfd(portNumber);
	
	for(i = 0; i < 100000; i ++);
	SEEDDM642_rset(SEEDDM642_WDOGEN,2);

	addrI2C = 0x88 >>1;					      
	for(i =0; i<43; i++)
	{
		if(NTSCorPAL == 1)
		{
			_IIC_write(hSeeddm642i2c, 
					   addrI2C,
					   (sa7121hNTSC[i].regsubaddr), 
					   (sa7121hNTSC[i].regvule));
		}
		else
		{
			_IIC_write(hSeeddm642i2c, 
					   addrI2C,
					   (sa7121hPAL[i].regsubaddr), 
					   (sa7121hPAL[i].regvule));	
		}		
	}
	
/*----------------------------------------------------------*/

	/*初始化Video Port1*/
	/*將Vedio Port1設為采集輸入*/
	portNumber = 1;
	vpHchannel1 = bt656_8bit_ncfc(portNumber);
	bt656_capture_start(vpHchannel1);
	/*等待第一幀數據采集完成*/
	while(capNewFrame == 0){}
	/*將數據存入顯示緩沖區,并清采集完成的標志*/
	capNewFrame =0;
	for(i=0;i<numLines;i++)
	{
		/*傳送臨時Y緩沖區*/
		DAT_copy((void *)(capYbuffer + i * numPixels), 
	             (void *)(tempYbuffer + i * numPixels),
	             numPixels);
	    /*傳送臨時Cb緩沖區*/
	    DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)), 
	             (void *)(tempCbbuffer + i * (numPixels >> 1)),
	             numPixels>>1);
		/*傳送臨時Cr緩沖區*/
	    DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)), 
	             (void *)(tempCrbuffer + i * (numPixels >> 1)),
	             numPixels>>1);			  
	 }

    /*畫邊框*/    
    drawRectangle(); 
    
	/*消去彩色*/
    removeColor();
	 
    for(i=0;i<numLines;i++)
	{
		/*傳送Y緩沖區*/
	    DAT_copy((void *)(tempYbuffer + i * numPixels), 
	             (void *)(disYbuffer + i * numPixels),
	             numPixels);
	    /*傳送Cb緩沖區*/
	    DAT_copy((void *)(tempCbbuffer + i * (numPixels >> 1)), 
	             (void *)(disCbbuffer + i * (numPixels >> 1)),
	             numPixels>>1);
		/*傳送Cr緩沖區*/
	    DAT_copy((void *)(tempCrbuffer + i * (numPixels >> 1)), 
	             (void *)(disCrbuffer + i * (numPixels >> 1)),
	             numPixels>>1);			 
	 }	 
	 
	   
	/*啟動顯示模塊*/
	bt656_display_start(vpHchannel0);
	/*建立顯示的實時循環*/
	for(;;)
	{
		/*當采集區的數據已經采集好,而顯示緩沖區的數據已空*/
		if((capNewFrame == 1)&&(disNewFrame == 1))
		{
			/*將數據裝入顯示緩沖區,并清采集完成的標志*/
			capNewFrame =0;
			disNewFrame =0;
			for(i=0;i<numLines;i++)
			{
				/*傳送臨時Y緩沖區*/
				DAT_copy((void *)(capYbuffer + i * numPixels), 
			             (void *)(tempYbuffer + i * numPixels),
			             numPixels);
			    /*傳送臨時Cb緩沖區*/
			    DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)), 
			             (void *)(tempCbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*傳送臨時Cr緩沖區*/
			    DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)), 
			             (void *)(tempCrbuffer + i * (numPixels >> 1)),
			             numPixels>>1);				   
			 }
				    
		    /*畫邊框*/    
		    drawRectangle(); 		
		   
			/*消去彩色*/
            removeColor();
			
	        for(i=0;i<numLines;i++)
			{
				/*傳送Y緩沖區*/
			    DAT_copy((void *)(tempYbuffer + i * numPixels), 
			             (void *)(disYbuffer + i * numPixels),
			             numPixels);
			    /*傳送Cb緩沖區*/
			    DAT_copy((void *)(tempCbbuffer + i * (numPixels >> 1)), 
			             (void *)(disCbbuffer + i * (numPixels >> 1)),
			             numPixels>>1);
				/*傳送Cr緩沖區*/
			    DAT_copy((void *)(tempCrbuffer + i * (numPixels >> 1)), 
			             (void *)(disCrbuffer + i * (numPixels >> 1)),
			             numPixels>>1);			 
			 }			
		 
		}
		
	}
	
	for(;;)
	{}
  /*----------------------------------------------------------*/
	/*采集與回放*/
		
}  


/*畫矩形邊框函數的定義*/
void drawRectangle()
{
    int i,j;
    /*畫上邊*/
    //奇數行
    for(i=intALines-4;i<intALines;i++)  //邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}	
	
	//偶數行
	for(i=numLines/2+intALines-4;i<numLines/2+intALines;i++)  //邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}


	/*畫下邊*/
	//奇數行
    for(i=intDLines;i<intDLines+4;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
	for(i=numLines/2+intDLines;i<numLines/2+intDLines+4;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}	

	
	/*畫左邊*/
	//奇數行
    for(i=intALines;i<intDLines;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intAPixels;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//邊框長度
	{
	    for(j=intAPixels-6;j<intAPixels;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	
	/*畫右邊*/
	//奇數行
    for(i=intALines;i<intDLines;i++)//邊框長度
	{
	    for(j=intDPixels;j<intDPixels+6;j++) //奇數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
	
	//偶數行
    for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//邊框長度
	{
	    for(j=intDPixels;j<intDPixels+6;j++) //偶數行邊框寬度
	    {
	    	 *(Uint8 *)(tempYbuffer + i*numPixels + j) = 0x00;
	    }
	}
} 

/*消去彩色*/
void removeColor()
{
	int i,j;
	//方框內奇數行
	for(i=intALines;i<intDLines;i++)//行數
	{
	    for(j=intAPixels/2;j<intDPixels/2;j++) //像素數/每行
	    {
            *(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) =  0x80;
            *(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) =  0x80;
	    }    	 
	}
	
	//方框內偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數
	{
	    for(j=intAPixels/2;j<intDPixels/2;j++) //像素數/每行
	    {		
            *(Uint8 *)(tempCbbuffer + i * (numPixels >> 1) + j) =  0x80;
            *(Uint8 *)(tempCrbuffer + i * (numPixels >> 1) + j) =  0x80;
	    }   
	}		
}


 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人xxxx| 精品国产一区二区国模嫣然| 成人一级片网址| 久色婷婷小香蕉久久| 亚洲.国产.中文慕字在线| 日韩一级欧美一级| 精品免费一区二区三区| 欧美本精品男人aⅴ天堂| 日韩欧美中文字幕一区| 欧美va天堂va视频va在线| 国产无一区二区| 国产精品久久久久影院老司| 综合久久给合久久狠狠狠97色| 国产色综合久久| 欧美亚洲图片小说| 久久精品日韩一区二区三区| 亚洲v日本v欧美v久久精品| 色综合天天综合色综合av| 中文字幕一区不卡| 毛片av中文字幕一区二区| 成人午夜免费电影| 欧美久久久久久久久中文字幕| 精品少妇一区二区三区在线视频| 久久天堂av综合合色蜜桃网| 亚洲欧美一区二区三区久本道91 | 国产精品久久毛片a| 国产精品久久久99| 蜜桃一区二区三区在线观看| 丰满少妇久久久久久久| 日韩欧美一区二区视频| 国产精品三级视频| 精品无人区卡一卡二卡三乱码免费卡| 成人美女在线视频| 日韩一级二级三级| 日韩国产精品91| 99久久精品国产一区二区三区| 欧美午夜在线一二页| 欧美韩国日本不卡| 国产盗摄一区二区| 精品国产乱码久久久久久久久 | 日韩一二三区视频| 一区二区三区在线视频观看| 国产ts人妖一区二区| 精品国产乱码久久久久久1区2区| 亚洲与欧洲av电影| 99国产麻豆精品| 日韩亚洲电影在线| 日韩福利视频网| 91精品视频网| 国产一区在线观看麻豆| 久久久影院官网| 成人一区二区在线观看| 久久先锋影音av| 国产精品911| 久久久久久免费毛片精品| 国产在线看一区| 国产精品污www在线观看| 91免费看`日韩一区二区| 亚洲精品免费电影| 在线播放视频一区| 成人午夜激情在线| 青青草国产成人99久久| 日韩美女久久久| 久久久久久亚洲综合影院红桃| 91在线看国产| 国产高清不卡二三区| 亚洲欧洲美洲综合色网| 91久久精品日日躁夜夜躁欧美| 日韩精品一二区| 欧美v亚洲v综合ⅴ国产v| 另类人妖一区二区av| 国产喷白浆一区二区三区| 99re热这里只有精品免费视频| 青青草国产精品97视觉盛宴| 中文字幕在线播放不卡一区| 91精品国产手机| 欧美性一区二区| 国模冰冰炮一区二区| 亚洲18色成人| 亚洲午夜av在线| 久久久久综合网| 久久综合九色欧美综合狠狠| 在线播放中文字幕一区| 欧美日韩三级视频| 欧美三级韩国三级日本一级| 色伊人久久综合中文字幕| 岛国av在线一区| eeuss鲁片一区二区三区| 日韩av二区在线播放| 欧美bbbbb| 国产精品香蕉一区二区三区| 午夜电影久久久| 亚洲 欧美综合在线网络| 天天色综合天天| 一区二区三区精品在线观看| 亚洲精品第1页| 一区二区三区欧美久久| 7878成人国产在线观看| 欧美一区二区三区在线看| 久久久精品日韩欧美| 亚洲一区二区在线观看视频| 日本在线播放一区二区三区| 国产成人在线观看| 欧美丰满高潮xxxx喷水动漫| 国产精品无人区| 麻豆精品新av中文字幕| 一本久道久久综合中文字幕| 日韩欧美国产小视频| 一区二区三区在线视频观看58| 国产在线精品免费| 欧美日本在线视频| 亚洲一本大道在线| 92精品国产成人观看免费| 欧美www视频| 蜜臀久久99精品久久久画质超高清| 91麻豆产精品久久久久久| 精品久久久三级丝袜| 日日骚欧美日韩| 欧美视频一区二区在线观看| 亚洲色图制服诱惑| 91年精品国产| 亚洲欧美韩国综合色| 成人高清免费在线播放| 久久亚洲春色中文字幕久久久| 精品一区二区久久久| 欧美精品一区二区三区在线| 奇米一区二区三区| 精品少妇一区二区三区在线播放 | 在线视频你懂得一区| 国产精品美女久久久久久| 色综合网站在线| 一区二区三区四区激情| 久久99深爱久久99精品| 日韩免费在线观看| 国产成人在线观看| 亚洲欧美另类久久久精品2019 | 国产精品国产精品国产专区不蜜 | 免费看日韩a级影片| 欧美岛国在线观看| 东方欧美亚洲色图在线| 一区二区在线观看免费| 国产精品色在线观看| 欧美日韩免费视频| 美女一区二区在线观看| 欧美国产一区在线| 日本精品一区二区三区四区的功能| 亚洲国产精品久久久久秋霞影院| 91麻豆精品国产91久久久久久久久| 国产一区二区伦理片| 一区二区三区毛片| 国产网站一区二区三区| 欧美午夜精品一区| 懂色av一区二区三区蜜臀| 蜜臀久久99精品久久久画质超高清| 国产精品久久久久影视| 日韩一区二区三区电影| 欧美视频一区在线观看| 99精品欧美一区二区三区小说 | 欧美精品一区二区三| 欧美日韩美少妇| 91成人网在线| 在线观看亚洲一区| 色婷婷综合久久久久中文| 懂色av噜噜一区二区三区av| 久久99国产精品久久99| 日本伊人午夜精品| 亚洲成人av一区二区| 亚洲成人7777| 五月婷婷激情综合网| 婷婷开心久久网| 伦理电影国产精品| 精品在线观看视频| 国产伦精品一区二区三区在线观看| 婷婷国产v国产偷v亚洲高清| 一区二区三区不卡视频在线观看 | 国产一区二区三区免费观看| 亚洲一区二区三区四区在线免费观看 | 精品国产乱子伦一区| 欧美精品一区二区三| 久久久五月婷婷| 中文字幕一区二区在线播放| 日韩三级中文字幕| 欧美一区二区视频观看视频| 精品对白一区国产伦| 综合久久国产九一剧情麻豆| 亚洲一区二区在线播放相泽| 日韩激情中文字幕| 国产电影一区二区三区| 91网站视频在线观看| 欧美精品欧美精品系列| 精品国偷自产国产一区| 国产精品天干天干在线综合| 亚洲激情图片一区| 麻豆久久久久久久| 成人一区二区三区视频| 日韩一区二区三区视频在线观看| 日韩女优视频免费观看| 亚洲人成网站精品片在线观看| 视频一区免费在线观看| 成人午夜av影视|