微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > s3c2440的摄像接口应用

s3c2440的摄像接口应用

时间:11-19 来源:互联网 点击:
uartISR(void)
{
unsigned char ch;

rSUBSRCPND |= 0x3;
rSRCPND = 0x1<28;
rINTPND = 0x1<28;

ch = rURXH0; //接收字节数据
switch(ch)
{
case 0x11://正常显示视频
com=1;
break;
case 0x22://定格图像
com=2;
break;
case 0x33://放大尺寸
com=3;
break;
case 0x44://缩小尺寸
com =4;
break;
}
rUTXH0 = ch;
}

void Main(void)
{
int HOffset,VOffset;

//初始化UPLL,以得到OV9650的系统时钟
rUPLLCON = (56<12) | (2<4) | 1;//UPLL为96MHz
rCLKdivN |= (1<3);//UCLK = UPLL/2=48MHz
rCAMdivN = (rCAMdivN & ~(0xf))|(1<4)|(2);//设置摄像接口时钟分频

…………

LCD_Init();//初始化LCD,其中LCD的显示格式为24位RGB格式

rLCDCON1|=1;//开启LCD

//配置摄像接口引脚
rGPJCON = 0x2aaaaaa;
rGPJDAT = 0;
rGPJUP = 0;//上拉使能

//硬件复位摄像头
rGPJDAT |= 1<12;
delay(100);
rGPJDAT &= ~(1<12);

//软件复位摄像接口
rCIGCTRL |= (1<31);
delay(100);
rCIGCTRL &= ~(1<31);
delay(100);

//软件复位摄像头
rCIGCTRL |= (1<30);
delay(300);
rCIGCTRL &= ~(1<30);
delay(20000);

config_ov9650();//配置OV9650寄存器

HOffset=0;
VOffset=0;

//初始化摄像接口
CamInit(320,240,HOffset,VOffset);

//开启摄像接口中断,
rSUBSRCPND |= 1<12;
rSRCPND |= 1<6;
rINTPND |= 1<6;
rINTSUBMSK &= ~(1<12);
rINTMSK &= ~(1<6);
pISR_CAM = (U32)CamIsr;

rCIPRSCCTRL|=(1<15);//预览缩放开启
rCIIMGCPT =(1<31)|(1<29);//预览缩放捕捉使能

com=0;

while(1)
{
switch(com)
{
case 1://正常显示
com=0;
rCIPRSCCTRL|=(1<15);
rCIIMGCPT =(1<31)|(1<29);
break;
case 2://定格图像
com=0;
rCIPRSCCTRL&=~(1<15);
rCIIMGCPT &=~((1<31)|(1<29));
break;
case 3://放大视频
com=0;
if(HOffset==160)
break;
HOffset += 8;
VOffset += 8;
rCIPRSCCTRL&=~(1<15);
rCIIMGCPT &=~((1<31)|(1<29));
CamInit(320,240,HOffset,VOffset);
rCIPRSCCTRL|=(1<15);
rCIIMGCPT =(1<31)|(1<29);
break;
case 4://缩小视频
com=0;
if(HOffset==0)
break;
HOffset -= 8;
VOffset -= 8;
rCIPRSCCTRL&=~(1<15);
rCIIMGCPT &=~((1<31)|(1<29));
CamInit(320,240,HOffset,VOffset);
rCIPRSCCTRL|=(1<15);
rCIIMGCPT =(1<31)|(1<29);
break;
}
}
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top