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

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

?? dm642main.c

?? TI系列DPS完成灰度圖像的閾值分割程序
?? 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)


/*二值化閾值初始化*/
Uint8 intThreshold = 0x80;

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

/******************************/
/*****畫矩形邊框函數的聲明*****/
void drawRectangle();
/*****進行閾值分割處理*********/
void threshold();


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

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

Uint32 tempYbuffer    = 0x80200000;   //臨時

/*圖像格式標志*/
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);			  
	 }

    /*畫邊框*/    
    drawRectangle(); 
    
	/*進行閾值分割處理*/
	threshold();

	 
	for(i=0;i<0x33ae0;i++)
	{
	    *((Uint8 *)(disCrbuffer +i)) =0x80;
	    *((Uint8 *)(disCbbuffer +i)) =0x80;

	}
	 
    for(i=0;i<numLines;i++)
	{
		/*傳送Y緩沖區*/
	    DAT_copy((void *)(tempYbuffer + i * numPixels), 
	             (void *)(disYbuffer + i * numPixels),
	             numPixels);			 
	 }
			 	   
	/*啟動顯示模塊*/
	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);			   
			 }
				    
		    /*畫邊框*/    
		    drawRectangle(); 		
		   
			/*進行閾值分割處理*/
			threshold();
			
	        for(i=0;i<numLines;i++)
			{
				/*傳送Y緩沖區*/
			    DAT_copy((void *)(tempYbuffer + i * numPixels), 
			             (void *)(disYbuffer + i * numPixels),
			             numPixels);			 
			 }			
		 
		}
		
	}
	
	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 threshold()
{
	int i,j;
	//方框內奇數行
	for(i=intALines;i<intDLines;i++)//行數
	{
	    for(j=intAPixels;j<intDPixels;j++) //像素數/每行
	    {
	        *(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(tempYbuffer + i*numPixels + j)<intThreshold?0x00:0xFF;
	    }	 
	}
	
	//方框內偶數行
	for(i=numLines/2+intALines;i<numLines/2+intDLines;i++)//行數
	{
	    for(j=intAPixels;j<intDPixels;j++) //像素數/每行
	    {		
        	*(Uint8 *)(tempYbuffer + i*numPixels + j) = *(Uint8 *)(tempYbuffer + i*numPixels + j)<intThreshold?0x00:0xFF;   
        }
	}		
}


 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品在线免费观看| a在线欧美一区| 亚洲精品国产一区二区精华液| 久久久久久久网| 国产精品传媒在线| 中文字幕一区二区三区不卡 | 一区二区久久久久久| 国产精品高潮呻吟| 亚洲欧洲制服丝袜| 天堂蜜桃91精品| 国产一本一道久久香蕉| 风间由美一区二区三区在线观看 | 中文欧美字幕免费| 国产欧美日产一区| 依依成人综合视频| 天天综合天天综合色| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品亚洲а∨天堂免在线| 成人激情午夜影院| 欧美系列一区二区| 免费国产亚洲视频| 91亚洲精品乱码久久久久久蜜桃| 成人精品免费网站| 91美女精品福利| 欧美日韩精品系列| 久久久久久99久久久精品网站| 亚洲欧洲日韩在线| 日韩成人精品在线| 国产91综合一区在线观看| 欧美性受极品xxxx喷水| 精品国产电影一区二区| 国产精品久久久久三级| 日韩av高清在线观看| 成人99免费视频| 日韩欧美一区二区免费| 亚洲免费观看高清完整版在线观看 | 亚洲成人免费在线观看| 国产在线不卡一区| 在线中文字幕一区| 国产午夜精品久久久久久久| 亚洲va欧美va天堂v国产综合| 国产成人免费视| 日韩一级二级三级精品视频| 亚洲图片另类小说| 国产丶欧美丶日本不卡视频| 欧美顶级少妇做爰| 亚洲人成网站色在线观看| 黄色精品一二区| 欧美一区二区三区播放老司机| 中文字幕av在线一区二区三区| 欧美a级一区二区| 欧美性视频一区二区三区| 国产精品毛片a∨一区二区三区| 免费日韩伦理电影| 欧美亚洲精品一区| 亚洲三级理论片| 成人爽a毛片一区二区免费| 日韩欧美亚洲国产另类| 午夜欧美在线一二页| 色屁屁一区二区| ...av二区三区久久精品| 国产乱码精品一区二区三 | 日本一区二区三区四区在线视频| 免费在线观看日韩欧美| 欧美日产国产精品| 亚洲成a人片综合在线| 日本韩国一区二区三区视频| 亚洲男女一区二区三区| 91一区一区三区| 1区2区3区精品视频| 99精品国产热久久91蜜凸| 亚洲人成伊人成综合网小说| av一区二区三区在线| 中文字幕一区二区三区蜜月| 成人免费观看视频| 亚洲人一二三区| 欧美午夜在线一二页| 亚洲一区二区三区视频在线播放 | 国产精品污污网站在线观看| 国产美女在线精品| 日本一区二区三区在线观看| 成人综合在线观看| 国产精品三级视频| 色婷婷一区二区| 亚洲成人精品一区二区| 欧美群妇大交群中文字幕| 日韩不卡一区二区| 精品国产精品一区二区夜夜嗨| 国产成人免费网站| 亚洲欧美日韩成人高清在线一区| 91久久久免费一区二区| 视频精品一区二区| 久久久精品tv| 97超碰欧美中文字幕| 视频一区中文字幕国产| 精品毛片乱码1区2区3区| 国产福利91精品一区| 一区二区三区.www| 日韩欧美激情四射| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美私人免费视频| 免费成人结看片| 国产清纯白嫩初高生在线观看91 | 欧美一级国产精品| 国产.欧美.日韩| 一区二区成人在线| 精品剧情v国产在线观看在线| 97久久超碰精品国产| 麻豆成人在线观看| 一区二区三区四区高清精品免费观看 | 日韩1区2区日韩1区2区| 久久久久久综合| 欧美亚洲图片小说| 国产精品伊人色| 五月婷婷综合在线| 最新国产の精品合集bt伙计| 日韩视频一区二区三区| 色婷婷综合久色| 国产一区二区网址| 亚洲小说欧美激情另类| 欧美激情一区二区三区四区| 3751色影院一区二区三区| 91影院在线观看| 国产福利91精品| 午夜精品国产更新| 一区二区三区在线免费| 中文字幕欧美区| 日韩一区二区在线看片| 欧美日韩亚洲综合在线| 一本色道综合亚洲| 成人av网址在线| 国产高清久久久| 狠狠网亚洲精品| 久久99精品久久久久久久久久久久| 亚洲欧美国产三级| 日韩毛片视频在线看| 国产精品视频一二| 国产视频一区二区在线观看| 欧美变态凌虐bdsm| 日韩一区二区不卡| 欧美猛男超大videosgay| 欧洲亚洲精品在线| 色婷婷香蕉在线一区二区| 97se亚洲国产综合自在线| 成人精品在线视频观看| 国产91清纯白嫩初高中在线观看| 久久精品99国产精品| 欧美aaa在线| 免费的国产精品| 久久黄色级2电影| 精品制服美女丁香| 精品一区二区国语对白| 精品亚洲国产成人av制服丝袜| 奇米精品一区二区三区在线观看| 日本va欧美va精品发布| 美女网站色91| 国产一区二区女| 成人高清视频在线观看| 色欧美片视频在线观看在线视频| 色综合中文字幕国产| 99久久精品费精品国产一区二区| 91在线免费播放| 欧美日韩在线播放| 日韩欧美国产一区二区在线播放| 26uuu亚洲综合色| 久久久亚洲午夜电影| 欧美国产精品v| 有码一区二区三区| 美女任你摸久久| 高清beeg欧美| 欧美亚洲动漫制服丝袜| 精品少妇一区二区| 国产精品成人一区二区三区夜夜夜 | 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕视频一区| 亚洲一区二区四区蜜桃| 蜜臀va亚洲va欧美va天堂| 国产一区二区三区四区在线观看| av一区二区久久| 在线电影一区二区三区| 国产亚洲欧美一区在线观看| 亚洲激情自拍偷拍| 久久99深爱久久99精品| 91在线国产福利| 日韩免费视频一区| 亚洲乱码国产乱码精品精98午夜 | 亚洲电影一级黄| 国产一区二区成人久久免费影院| 91同城在线观看| 日韩三级免费观看| 自拍偷自拍亚洲精品播放| 日本亚洲免费观看| 色综合久久久久综合| 欧美成人高清电影在线| 一区二区三区免费| 国产综合久久久久影院| 欧美日韩五月天| 中文字幕欧美一| 国产成人精品免费视频网站| 欧美精品亚洲二区|