常驻嘉宾
- 积分
- 4616
- 威望
- 2165
- 贡献
- 1183
- 兑换币
- 1355
- 注册时间
- 2013-9-6
- 在线时间
- 634 小时
- 毕业学校
- 山东交通学院
|
10贡献
本来到现在这个时候,车都能跑了,还问这个问题有点太什么了,不过这个问题确实困扰了我很长一段时间,总想着应该而且必须要解决,不能去逃避,好了废话不说了,说问题。
用的是ov7620+k60+74ls74四分频,本来按理讲应该能采集到640/4=160列图像,但现实是只能采到130列稳定图像,130~135列左右的图像有的行是有的,有的行是没有的,灰度值是16。用视频采集卡看图像,赛道两边都能看到(当时明明截屏了,回宿舍一看整个都是黑的,只好大体画一下)
但实际用单片机采集出来的是这样
左边的很多列不知怎么就没了,本来怀疑是74ls74的速度问题,但后来看了很多技术报告,里面基本上都能采集160列左右,基本没有这种情况,后来又觉得是摄像头问题,换了一个还是这样,最后觉得是程序问题,没发现哪出问题了,把程序贴出来大家帮忙分析一下吧!
void PORTD_IRQHandler() //行中断
{
if(PORTD_ISFR & (1 << 13))//PTD13触发中断,采集的行中断
{
PORTD_ISFR |=(1 << 13);//写1清中断标志位
if(flag_full_chang==0)
return;
LinCout++ ;
if(LinCout==AcqAryy[ROW_C])
{
DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTD_BYTE0_IN,ImageBuf[ROW_C], PTD12, DMA_BYTE1,150, DMA_rising_down);
DMA_IRQ_CLEAN(DMA_CH4); //清除通道传输中断标志位 (这样才能再次进入中断)
DMA_IRQ_EN(DMA_CH4) ; //允许DMA通道传输
DMA_EN(DMA_CH4); //使能通道CHn 硬件请求 (这样才能继续触发DMA传输)
ROW_C++;
if(ROW_C >= 50)//采样行数 50 这里采集的50行是已经隔行处理的
{
ROW_C=0;
LinADCout = 0 ;
}
}
}
}
|
附件: 您需要 登录 才可以下载或查看,没有帐号?注册
|