金牌会员
- 积分
- 2113
- 威望
- 998
- 贡献
- 651
- 兑换币
- 639
- 注册时间
- 2014-5-25
- 在线时间
- 232 小时
- 毕业学校
- 湖北科技学院
|
这个是我用上位机看到的图像。首先图像采集的不是很清晰,看各位有什么好的建议来提高清晰度。然后就是图像分成了两半,图中箭头所指图像本应在图片最右边。在野火的pdf文档里有这样的分析:“ 问题:图像分成左右两半图像,左半幅图是右半幅图的右边图像。解答:没处理好行中断,可能行中断来了后处理太多东西才开始采集。”。
下面是我的场中断和行中断的中断服务程序代码:
u8 Vsyn_Flag=0; //场中断标志
u8 DMA_Over_Flg = 0 ; //图像采集完成标志
u16 CameraV=0; //摄像头图像的行数
u8 ImageV=0; //筛选后,图像的行数
void PORTD_IRQHandler()
{
if(PORTD_ISFR & 0x2000) //PTD13触发中断,采集的行中断
{
PORTD_ISFR |= 0x2000; //写1清中断标志位
if(Vsyn_Flag==0) //若未触发场中断则退出
{
return;
}
if((CameraV%(480/V)==0)&&(ImageV<V))//若为指定筛选行
{
DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTE_BYTE0_IN, Pix_data[ImageV], PTD12, DMA_BYTE1, H, DMA_rising_keepon);
DMA_EN(DMA_CH4); //使能通道CHn 硬件请求 (这样才能继续触发DMA传输)
DMA_IRQ_EN(DMA_CH4) ; //允许DMA通道传输
ImageV ++ ;
}
CameraV++;
if(ImageV==V) //采集完一帧图像
{
ImageV=0;
DMA_DIS(DMA_CH4);
DisableInterrupts;
DMA_Over_Flg = 1 ;
Vsyn_Flag=0; //防止场消隐区仍在进行行中断而采集图像(自行添加)
}
}
if(PORTD_ISFR & 0x4000) //PTD14触发中断,采集的场中断
{
PORTD_ISFR |= 0x4000; //写1清中断标志位
CameraV = 0 ;
ImageV=0;
Vsyn_Flag=1;
}
}
望各位指点一下,如何修改来得到好的图像!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|