⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yuv.c

📁 一个在DSP C6711上实现的FFT.
💻 C
字号:
#include <c6x.h>
#include "flash.h"
#include "ICETEKYUV.h"

#define LED    (*(unsigned int *)0x90202018)

/* 傅立叶变换实验程序 */
void ShowTestImage();
void Display();
void Througth();
void Capture();

int main()
{
	register int i,j,ii;
	
	/********************* 初始化DSP ***********************/
	CSR=0x100;			/* 关中断 */
	IER=1;				/* 屏蔽除NMI中断以外的所有中断 */
	ICR=0xffff;			/* 清除中断标志位 */

	*(unsigned int *)EMIF_GCR = 0x3300;    	/* EMIF 全局控制字 */
	*(unsigned int *)EMIF_CE1 = CE1_32;    	/* EMIF CE1 control, 32位 */
	*(unsigned int *)EMIF_SDCTRL = 0x07126000; 	/* EMIF SDRAM控制字 */
	*(unsigned int *)EMIF_CE0 = 0x30;      	/* EMIF CE0控制字 */
	*(unsigned int *)EMIF_SDRP = 0x61a;    	/* EMIF SDRM刷新周期 */
	*(unsigned int *)EMIF_SDEXT= 0x54529;  	/* EMIF SDRM扩展 */
	/* Read space 	*/
	*(unsigned int *)EMIF_CE2 = CE2_32_max;	/* EMIF CE2控制字 */
	/* Write space */	
	*(unsigned int *)EMIF_CE3 = CE3_32;		/* EMIF CE3控制字 */
	delay_msec(ms_period/2);
	for(i=0;i<0xff;i++)
	{
		start_i2c();
		stop_i2c();
		delay_msec(5);
	}	    
	Init_7190();
	for(j=0;j<0x5;j++)	for(ii=0;ii<0x5;ii++);
	Init_7111();
	/******************* DSP初始化完毕 ********************/
	LED=0;
	while ( 1 )					
   	{	
		Througth();	//直通显示方式
		Capture();	//摄入新的帧至RAM,直通显示方式
		Througth();	//直通显示方式,为对数据进行操作必须设置直通显示方式
		gray();		//将图象转换成灰度图
		display();	//显示形成的图像
		for(i=0;i<0x7fffff;i++);	//延时
		througth();	//直通显示方式
		LED=0x10000000;
		Fourier(576/2,720/2);	//傅立叶变换,处理屏幕左上角图象范围(0,0)-(288,360)并将结果显示到屏幕左下方
		LED=0x00000000;
		Display();	//显示处理后的图像
		for(i=0;i<0x7fffff;i++) for ( j=0;j<32;j++);	//延时再重做 
	}
}		

void ShowTestImage()
{
   int i,j;
   
	for(i=0;i<576;i++)   //行576
	{  
		for(j=0;j<720;j++)   //列720点,360个32bit,
		{
			PutPixel(j,i,0x0080);	// 写点,颜色高8位为灰度值,低8位固定为0x80
		}
	}
	for ( i=576/8;i<576*3/8;i++ )
   		for ( j=720/8;j<720*3/8;j++ )
   			PutPixel(j,i,0x0f080);
}

/********************************
display()
*********************************/
void Display()
{
    	int i;
	*(unsigned int *)SYSRREG = 0xc;  //显示存储区
	for(i=0;i<0x7fffff;i++);
}


/********************************
throught()
*********************************/
void Througth()
{
	int i;
	*(unsigned int *)SYSRREG = 0xa;  //直通显示
	for(i=0;i<0x7fffff;i++); 
}

	
/********************************
display()
*********************************/
void Capture()
{
    	int i;
	*(unsigned int *)SYSRREG = 0x9;  //采集视频信号	
	for(i=0;i<0x7fffff;i++);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -