注册 登录
查看: 209|回复: 4

[鹰眼] 程序卡在While中,DMA没有产生采集完成中断,源程序可以,但我加了一段自己的就不

[复制链接]
发表于 2017-7-7 11:29:39 | 显示全部楼层 |阅读模式
程序卡在这个位置,DMA采集完成中断没有产生,   如果我只把内容1(见下面)加进去程序可以运行,加内容2也可以正常运行,但如果都加进去就不行啦,前几帧图像可以,之后就卡死,求救,先谢谢啦
while(ov7725_eagle_img_flag != IMG_FINISH)           //等待图像采集完毕
    {
        if(ov7725_eagle_img_flag == IMG_FAIL)            //假如图像采集错误,则重新开始采集
        {
            ov7725_eagle_img_flag = IMG_START;           //开始采集图像
            PORTA_ISFR = ~0;                //写1清中断标志位(必须的,不然回导致一开中断就马上触发中断)
            enable_irq(PORTA_IRQn);                 //允许PTA的中断
        }
主函数中加入的函数内容1
for(zu_flag=0;zu_flag<10;zu_flag++)
  {
    for(zu_le_flag=8;zu_le_flag>0;zu_le_flag--)
    {
      for(i=0;i<60;i++)
      {
        if((imgbuff[zu_flag+i*10]>>(zu_le_flag-1))&&0x01==1)
        {
          img_chuli[zu_flag*8+7-zu_le_flag+1]+=1;
        }
      }
    }
  }
主函数中加入的函数内容2
for(i=0;i<80;i++)
{
   if(img_chuli>img_chuli[i+1])
    {
     if(img_chuli-img_chuli[i+1]>5)
      {
      fenzu+=1;
        zujie[fenzu-1]=i;

     }
    else if(img_chuli[i+1]>img_chuli)
    {
      if(img_chuli[i+1]-img_chuli>5)
      {
       fenzu+=1;
       zujie[fenzu-1]=i;
     }
    }


    }
   }

回复

使用道具 举报

 楼主| 发表于 2017-7-7 11:33:23 | 显示全部楼层
用的K60核心板,还有鹰眼摄像头  别的都没有用,求大神帮助啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2017-7-7 11:34:06 | 显示全部楼层
检查一下,是执行时间问题,还是代码干扰问题。

例如保留代码1,对代码2不停裁剪,看看最终是哪个代码干扰导致。

试试把这些代码,换成延时函数,看看是否时间导致的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 11:38:16 | 显示全部楼层
孔璇子 发表于 2017-7-7 11:34
检查一下,是执行时间问题,还是代码干扰问题。

例如保留代码1,对代码2不停裁剪,看看最终是哪个代码干 ...

先谢谢啊,我去掉一段,只保留一段,然后复制上去好多次,执行都没问题,只要把两段都放上去就不行啦,应该不是时间的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-7 12:21:33 | 显示全部楼层
我在第一个函数段里边用的一个数组,img_chuli[80],是对图像的遍历,现在的问题是,只要对这个数组在处理不行,我把第二段代码重新申请了一个新内存,然后就可以用,然后想着先把上边那个数组做一下转移,然后还不行,就是对上一个处理结果不能动
回复 支持 反对

使用道具 举报

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

本版积分规则

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