智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2379|回复: 0
打印 上一主题 下一主题

怪异,求解释(摄像头图像采集)

[复制链接]

2

主题

2

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
257
威望
173
贡献
62
兑换币
0
注册时间
2012-2-22
在线时间
11 小时
跳转到指定楼层
1#
发表于 2012-5-21 01:04:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
文字说名有点多,希望大家能尽量认真看完,谢谢大家的帮助
先说下我的思想,大体是行场中断接到h口的外部中断,然后就一顿采数据,M口是外部AD的数据输入口,但我记得摄像头一幅图像是625行,奇偶场除以2也有300多行,上次发一个帖子的程序大概也是这个思想,但那个程序确实惨不忍睹,一下是最近做的一个程序,每句都研究过,也能自认很漂亮采集到正确的数据,但是。。。。。。,先上代码 #pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt VectorNumber_Vporth  AB(void)
{
  static int h,l;
  uchar i;
  h++;
  l=0;
  if(PIFH&0X01)
   {                    
      delay_us(11);
      while(l<100)
      {                                    
       video[h/2][l++]=PTM;
      }
       PIFH_PIFH0=1;
   }                     
  else
    {
      delay_us(1400); //消除非视频信号部分的长延时
      h=0;
      l=0;
      field_flag=1;
      PIFH_PIFH1=1;
    }                                
}

我的数组行范围只是60,但用液晶显示却把整个图像都显示了,但原理上数组顶多只能存储120行,即使加上前面delay_us(1400)消除的一些,这也差太多了吧,而且延时我都是慢慢调节过来的,基本是刚好把非数据部分消除,然道摄像头数据有用的仅仅不到150行?不可能吧!而且这个程序有时会突然就卡死了,尤其是中断标志位的清楚一定要放到最后,但如果是在没完成数据采集就频繁中断,我也不能得到一行完整的数据吧?而是几个差不多的值,但我确实得到了一整行完整的数据。这就证明时间上大概是充足的,但那为什么我一把清除标志位的语句我一放前他就出问题了?而且这个程序本身想当脆弱,好几个地方一碰就很容易使单片机卡死,比如读数据那块加个空操作之类的,这让我觉得这是在太不可靠了,求解释,求帮助

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-5 14:17 , Processed in 0.055178 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表