智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8010|回复: 35
打印 上一主题 下一主题

@火哥,鹰眼问题求解

[复制链接]

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
106
贡献
56
兑换币
63
注册时间
2013-3-19
在线时间
19 小时
毕业学校
njupt
跳转到指定楼层
#
发表于 2013-4-16 18:31:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
场中断开启行中断,行中断初始化DMA,采集完后,最左边的图像有几列在最右边,拍照的时候我是左边白右边黑,结果是这个样子,我设置COM4寄存器的几个级别的速度都是这样的,请问这是为什么,是因为DMA初始化占用的时间太多了吗?
void PORTA_IRQHandler(void)//功  能:PORTA 外部中断服务
{
   u8 i=14;
  if((PORTA->ISFR>>i)==1);
  {
   //if(SampleFlag==0){return;}//不足1场   
    DMA_Init(0,DMA_PORTC,GPIOD_IDR_Addr,(u32)ImageBuf[rowCnt],1,0,0,1,0,1,CAMERA_W/8);
   rowCnt++;
   if(rowCnt >=CAMERA_H)
   {
    rowCnt = 0;
    DMA0->SERQ&=~DMA_SERQ_SERQ(0);  
     LED3=!LED3;LED2=!LED2;
    NVIC_DisableIRQ(PORTA_IRQn);//行
     NVIC_DisableIRQ(PORTB_IRQn);//场
   }
   PORTA->ISFR|=(1<<i);   //清除标志位  
   }      
}
void PORTB_IRQHandler(void)//功  能:PORTB 外部中断服务
{
    u8 i=9;
   if((PORTB->ISFR>>i)==1)
  {
       rowCnt = 0;
     SampleFlag = 1;
     NVIC_EnableIRQ(PORTA_IRQn);//行
     PORTB->ISFR|=(1<<i);   //清除标志位  
  }
      
}

本帖子中包含更多资源

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

x

0

主题

6

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
威望
127
贡献
62
兑换币
73
注册时间
2016-12-22
在线时间
20 小时
毕业学校
长春理工大学
35#
发表于 2017-2-7 10:39:25 | 只看该作者
您好。您这个问题怎么解决的,我也困恼了几天了
回复 支持 反对

使用道具 举报

13

主题

45

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1428
威望
741
贡献
447
兑换币
395
注册时间
2014-10-2
在线时间
120 小时
毕业学校
西北工业大学
34#
发表于 2016-3-27 17:40:41 | 只看该作者
本帖最后由 ws15101 于 2016-3-27 17:44 编辑
野火 发表于 2013-4-16 19:15
你好,请用我们最新提供的代码。
不需要用到 行中断

火哥,我鹰眼用了行中断之后输出错误,OLED显示全白,求指教void chang_irq(void)
{
    if(LPLD_GPIO_IsPinxExt(PORTA, GPIO_Pin29))        //场中断
    {
          Pic_complete = 0;        //开始采集
          LPLD_GPIO_ClearIntFlag(PORTA);  //清除场中断标志
          //LPLD_DMA_LoadDstAddr(CAMERA_DMA_CH, (uint32)ov7725_eagle_img_buff);//恢复地址
          row_a = 0;
          row_c = 0;
          LPLD_GPIO_DisableIrq(vsync_irq);  //关闭场中断
          LPLD_GPIO_EnableIrq(href_irq);   //开启行中断

         // LPLD_DMA_EnableReq(CAMERA_DMA_CH);      //使能DMA硬件请求         
    }
}

void hang_irq(void)

{
    if(LPLD_GPIO_IsPinxExt(PORTA, GPIO_Pin28))        //行中断
    {
          LPLD_GPIO_ClearIntFlag(PORTA);  //清除行中断标志


          if(row_a == Pic_Get[row_c])
          {
              LPLD_DMA_EnableReq(CAMERA_DMA_CH);      //使能DMA硬件请求
              LPLD_DMA_LoadDstAddr(CAMERA_DMA_CH, (uint32)(ov7725_eagle_img_buff + row_c * 10));//恢复地址
              row_c++;
              if(row_c>=CAMERA_H)
              {
                  LPLD_GPIO_DisableIrq(href_irq);  //关闭行中断
                  LPLD_GPIO_EnableIrq(vsync_irq);   //开启场中断
                  Pic_complete = 1;
              }

          }
        row_a++;                    
        LPLD_DMA_DisableReq(CAMERA_DMA_CH); //禁用通道0 DMA请求  
    }

}

回复 支持 反对

使用道具 举报

5

主题

60

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1050
威望
512
贡献
316
兑换币
330
注册时间
2013-4-1
在线时间
111 小时
毕业学校
哈尔滨工业大学威海
33#
发表于 2014-6-13 16:22:57 | 只看该作者
野火 发表于 2013-4-16 19:18
为什么会出错?必须要用到场中断,才能稳定的……

如果不用行中断,场中断和PCLK应该设为上升沿触发么?
回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
106
贡献
56
兑换币
63
注册时间
2013-3-19
在线时间
19 小时
毕业学校
njupt
32#
 楼主| 发表于 2013-4-19 15:39:00 | 只看该作者
野火 发表于 2013-4-19 11:33
你好,可能是 sccb 通信不好,因为用 gpio管脚来模拟时序的。
建议用我们的工程来进行测试吧】

额,以前都好好的啊,就是撞了一下后不行了。
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
31#
发表于 2013-4-19 11:33:45 | 只看该作者
karis 发表于 2013-4-19 00:31
初始化失败,就是一直卡在写SCCB那边。。。

你好,可能是 sccb 通信不好,因为用 gpio管脚来模拟时序的。
建议用我们的工程来进行测试吧】

回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
106
贡献
56
兑换币
63
注册时间
2013-3-19
在线时间
19 小时
毕业学校
njupt
30#
 楼主| 发表于 2013-4-19 00:31:35 | 只看该作者
野火 发表于 2013-4-18 22:23
图像不稳定,如何跑车?
坏了,如何坏?现象如何?

初始化失败,就是一直卡在写SCCB那边。。。
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
29#
发表于 2013-4-18 22:23:38 | 只看该作者
karis 发表于 2013-4-18 20:37
好吧,今天跑车的时候跟平衡组的撞了一下,鹰眼坏了,他就这么坏了

图像不稳定,如何跑车?
坏了,如何坏?现象如何?

回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
106
贡献
56
兑换币
63
注册时间
2013-3-19
在线时间
19 小时
毕业学校
njupt
28#
 楼主| 发表于 2013-4-18 20:37:08 | 只看该作者
野火 发表于 2013-4-18 13:34
开中断前 必须 清中断。
结束的时候 ,如果关了中断,那清不清中断也没什么影响

好吧,今天跑车的时候跟平衡组的撞了一下,鹰眼坏了,他就这么坏了
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
27#
发表于 2013-4-18 13:34:57 | 只看该作者
karis 发表于 2013-4-18 12:34
每次场中断结束都清过中断标志的呀

开中断前 必须 清中断。
结束的时候 ,如果关了中断,那清不清中断也没什么影响

回复 支持 反对

使用道具 举报

6

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
200
威望
106
贡献
56
兑换币
63
注册时间
2013-3-19
在线时间
19 小时
毕业学校
njupt
26#
 楼主| 发表于 2013-4-18 12:34:41 | 只看该作者
野火 发表于 2013-4-17 16:25
开场中断前,必须清中断标志位,否则分开两幅图像

每次场中断结束都清过中断标志的呀
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 00:56 , Processed in 0.061583 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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