基于DM6437的图像采集和处理系统-小波变换 联系客服

发布时间 : 星期二 文章基于DM6437的图像采集和处理系统-小波变换更新完毕开始阅读3caee9ea4693daef5ef73d18

并显示:

5.2 摄像头驱动和显示程序

void vpfe_init( Uint32 buffer, Uint32 width, Uint32 height ) {//同步、模式设置

VPFE_CCDC_SYN_MODE = 0//0x00032F84; // interlaced, with VD pority as negative |(0<<19) //使能 SDRAM端口输出到resizer的输入,0=disable |(0<<18) //使能 视频口video port,输出到SDRAM,0=disable |(1<<17) //数据写使能,控制CCD列数据是否写入DDR,0=disable |(1<<16) //vd/hd使能,如果hd、vd定义为输出,那么内部产生时序,否则外部产生

|(0<<15) //Field状态,表明当前的field状态,0=奇场,1=偶场 |(0<<14) //3 tap低通滤波器,0=off

|(2<<12) //INPMOD 数据输入模式,0=CCD Raw,1=YCbCr 16bit,2=

25

YCbCr 8bit,3保留

|(1<<11) //每个象素的包大小,0=16bit/pixel,1=8bit/pixel |(7<<8) //ccd 数据宽度,只有INPMOD=0(12bit-13bit)时有效 // 0=16bit,1=15bit,2=14bit,3=13bit,4=12bit // 5=11bit,6=10bit,7=8bit |(1<<7) //传感器场模式,0=逐行扫描,1=隔行 |(0<<6) //CCD数据极性

|(0<<5) //外部WEN信号选择,如果VDHDEN=1(16bit),设置此位将使CCD数据加载到DDR

// 0=不使用

|(0<<4) //场 指示器极性,0=正极,1=负极 |(0<<3) //HD同步极性,0=正极,1=负极 |(1<<2) //VD同步极性,0=正极,1=负极 |(0<<1) //场ID方向,0=输入,1=输出 |(0); //VD、HD同步方向,0=输入,1=输出

VPFE_CCDC_HD_VD_WID = 0; //HD,VD信号脉冲宽度寄存器 VPFE_CCDC_PIX_LINES = 0x02CF020D; //每行的水平象素,及一帧的行数 //0|(0x2cf<<16) //每行的水平象素719+1=720 //|(0x20d) //每帧或每场的半行数525+1=526 /*

* sph = 1, nph = 1440, according to page 32-33 of the CCDC spec * for BT.656 mode, this setting captures only the 720x480 of the * active NTSV video window */

VPFE_CCDC_HORZ_INFO = width << 1; // Horizontal lines

//水平象素信息,(31-16)=开始象素,(14-0)=输入到DDR的每行象素个数

VPFE_CCDC_HSIZE_OFF = width << 1; // Horizontal line offset

// 水平大小,(15-0)=每行的地址偏移,即跳行到DDR2读取数据?

// 5 lsb 忽略,最好是256字节的倍数 VPFE_CCDC_VERT_START = 0; // Vertical start line

// 垂直线开始象素(16-31)=SLV0(Field0),(0-14)=SLV1(Field0) // 设定数据输入到DDR的开始行

26

VPFE_CCDC_VERT_LINES = height >> 1; // Vertical lines(14bit-0) // 垂直线的线数

VPFE_CCDC_CULLING = 0xFFFF00FF; // Disable cullng,水平及垂直方向的选择方式 //(31-24)=偶场的水平选择,(23-16)=奇场的水平选择 // (15-8)=保留,(7-0)=垂直选择模式 VPFE_CCDC_SDOFST = 0//0x00000249; //DDR线偏移

|(0<<14) //场标志信号翻转,0=正常

|(0<<12) //场线偏移,0=+1线,1=+2线,2=+3线,3=+4线,

|(1<<9) //偶线和偶场的线偏移,0=+1,1=+2,2=+3,3=+4,4=-1, // 5=-2,6=-3,7=-4,

|(1<<6) //奇线和偶场的线偏移,0=+1,1=+2,2=+3,3=+4,4=-1, // 5=-2,6=-3,7=-4,

|(1<<3) //偶线和奇场的线偏移,0=+1,1=+2,2=+3,3=+4,4=-1, // 5=-2,6=-3,7=-4,

|(1<<0); //奇线和奇场的线偏移,0=+1,1=+2,2=+3,3=+4,4=-1, // 5=-2,6=-3,7=-4, VPFE_CCDC_SDR_ADDR = buffer; //buffer DDR地址,最低5位忽略 VPFE_CCDC_CLAMP = 0//; //可选的黑色箝位设置

|(0<<31) //CLAMPEN ,CLAMP使能,0=禁止

|(0<<28) //采样象素长度,0=1pixel,为2^N(次幂),5-7保留 |(0<<25) //采样线长度,0=1 line,为2^N(次幂),5-7保留 |(0<<10) //采样的开始象素 |(0<<0); //bit4-bit0,平均增益

VPFE_CCDC_DCSUB = 0; //CCD数据要减去的值,当CLAMPEN=0时有效 VPFE_CCDC_COLPTN = 0xEE44EE44; //调色板设置

//0|(0<<30) //第三线调色板,3个象素,0=R,1=Gr,2=Gb,3=B //|(0<<28) //CP3LPC2,象素个数=2 //|(0<<26) //CP3LPC1,象素个数=1 // |(0<<24) //CP3LPC0,象素个数=0 // |(0<<22) //第二线调色板 // |(0<<20) // |(0<<18) // |(0<<16)

// |(0<<14) //第一线调色板 // |(0<<12) // |(0<<10) // |(0<<8)

27

// |(0<<6) //第0线调色板 // |(0<<4) // |(0<<2) // |(0<<0);

VPFE_CCDC_BLKCMP = 0; //黑色补偿 //0|(0<<24) //R红色 //|(0<<16) //Gr // |(0<<8) //Gb // |(0<<0); //B蓝色

VPFE_CCDC_FPC_ADDR = 0x86800000; //不知道干吗用的 VPFE_CCDC_FPC = 0;

VPFE_CCDC_VDINT = 0; //VD中断时序,(30-16)=VDINT0,(14-0)=VDINT1 VPFE_CCDC_ALAW = 0; //a 率设置 VPFE_CCDC_REC656IF = 0//0x00000003; //rec656接口 |(1<<1) //FVH错误纠正使能 |(1<<0) ; //Rec656接口使能 /*

* Input format is Cb:Y:Cr:Y, w/ Y in odd-pixel position */

VPFE_CCDC_CCDCFG = 0//0x00000800; //CCD配置寄存器

|(0<<15) //使能VSYNC内部的锁存功能,0=使用VSYNC锁存

|(0<<13) //MSBINVI,色度输入信号最高位是否在SDRAM中翻转,0=正常 |(0<<12) //DDR的字节是否交换,如果字节包已经使能,象素个数必须为偶数 // 0=正常

|(1<<11) //YCbCr 8bit输入时Y的位置,0=偶像素,1=奇象素

|(0<<8) //指定CCD有效范围,0=当WEN为逻辑“与”时内部信号有效,反之为“”

|(0<<6) //FID检测,0=VSYNC时序锁存FID信号,1=不锁存,2=VD边缘锁存,3=VD、HD的相位决定

|(0<<5) //CCIR656输入数据宽度,0=8bit,1=10bit |(0<<4) //YCINSWP,YI输入和CI引脚输入交换,0=不交换 |0;

VPFE_CCDC_FMTCFG = 0; //数据重新格式化、图象口配置

//0|(0<<16) //图象口数据准备好频率,跟内核频率有关,0=CoreClock*1/2=75MHz //|(0<<15) //video port 使能

28