📄 yuv.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 + -