智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 9350|回复: 10
打印 上一主题 下一主题

鹰眼摄像头基础程序讨论

[复制链接]

21

主题

58

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1978
威望
1017
贡献
617
兑换币
625
注册时间
2015-8-15
在线时间
172 小时
毕业学校
浙江理工
跳转到指定楼层
1#
发表于 2016-9-15 13:24:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先在while(1)
里面写ov7725_eagle_get_img()
把PTB的中断打开ov7725_eagle_vsync(),然后等待场中断触发,再打开DMA中断,通过DMA接受数据。


有两个疑问,
1.感觉没有DMA中断关闭的程序,为什么每次都要开DMA啊。而且不关DMA,对其他程序没影响啊。
2.采集一副图像的时候,一直在
while(ov7725_eagle_img_flag != IMG_FINISH)           //等待图像采集完毕
循环里面傻等,感觉一直在浪费单片机的资源。(虽然,现在还不知道可以用这些时间干些什么)
求解释


void ov7725_eagle_get_img()
{
    ov7725_eagle_img_flag = IMG_START;                   //开始采集图像
    PORTB_ISFR = ~0;                        //写1清中断标志位(必须的,不然回导致一开中断就马上触发中断)(改B)
    enable_irq(PORTB_IRQn);                         //允许PTB的中断
    while(ov7725_eagle_img_flag != IMG_FINISH)           //等待图像采集完毕
    {
        if(ov7725_eagle_img_flag == IMG_FAIL)            //假如图像采集错误,则重新开始采集
        {
            ov7725_eagle_img_flag = IMG_START;           //开始采集图像
            PORTB_ISFR = ~0;                //写1清中断标志位(必须的,不然回导致一开中断就马上触发中断)
            enable_irq(PORTB_IRQn);                 //允许PTB的中断
        }
    }
}

void ov7725_eagle_vsync(void)
{

    //场中断需要判断是场结束还是场开始
    if(ov7725_eagle_img_flag == IMG_START)                   //需要开始采集图像
    {
        ov7725_eagle_img_flag = IMG_GATHER;                  //标记图像采集中
        disable_irq(PORTB_IRQn);

#if 1

        PORTB_ISFR = 1 <<  PT21;            //清空PCLK标志位(改PB21)

        DMA_EN(CAMERA_DMA_CH);                  //使能通道CHn 硬件请求
        PORTB_ISFR = 1 <<  PT21;            //清空PCLK标志位(改PB21)
        DMA_DADDR(CAMERA_DMA_CH) = (uint32)ov7725_eagle_img_buff;    //恢复地址

#else
        PORTB_ISFR = 1 <<  PT21;            //清空PCLK标志位
        dma_repeat(CAMERA_DMA_CH, (void *)&PTC_B0_IN, (void *)ov7725_eagle_img_buff,CAMERA_DMA_NUM);
#endif
    }
    else                                        //图像采集错误
    {
        disable_irq(PORTB_IRQn);                        //关闭PTB的中断
        ov7725_eagle_img_flag = IMG_FAIL;                    //标记图像采集失败
    }
}

void ov7725_eagle_dma()
{
    ov7725_eagle_img_flag = IMG_FINISH ;
    DMA_IRQ_CLEAN(CAMERA_DMA_CH);           //清除通道传输中断标志位
}






回复

使用道具 举报

32

主题

3009

帖子

0

精华

杰出人士

学期班的来卖萌?

Rank: 12Rank: 12Rank: 12

积分
14832

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章资源大师奖章

威望
5952
贡献
3172
兑换币
4257
注册时间
2013-11-26
在线时间
2854 小时
2#
发表于 2016-9-16 15:27:09 | 只看该作者
不明觉厉
回复 支持 反对

使用道具 举报

4

主题

220

帖子

0

精华

常驻嘉宾

技术盒子

Rank: 8Rank: 8

积分
4641

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

威望
2678
贡献
1245
兑换币
915
注册时间
2016-3-27
在线时间
359 小时
毕业学校
东科大
3#
发表于 2016-9-16 18:23:42 | 只看该作者
有想法试试不就知道了
回复 支持 反对

使用道具 举报

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
4#
发表于 2016-9-17 11:06:22 | 只看该作者
要是有路径识别的程序模块就更好了!:P:P
回复 支持 反对

使用道具 举报

8

主题

280

帖子

0

精华

知名人物

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
37979
威望
11560
贡献
3701
兑换币
2372
注册时间
2014-11-1
在线时间
11359 小时
5#
发表于 2016-9-19 19:21:59 | 只看该作者
我们把等待采集完成的while移到了开始采集的前面,这样DMA和主循环就同时在走了。
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1616
威望
839
贡献
523
兑换币
503
注册时间
2015-7-19
在线时间
127 小时
毕业学校
湖北民族学院
6#
发表于 2016-9-26 19:25:09 | 只看该作者
行中断触发一次,DMA就采集一列的数据,DMA的触发源就是行中断啊!接收完之后DMA自动关闭,下一次触发需要重新开启中断
回复 支持 反对

使用道具 举报

5

主题

56

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1616
威望
839
贡献
523
兑换币
503
注册时间
2015-7-19
在线时间
127 小时
毕业学校
湖北民族学院
7#
发表于 2016-9-26 19:27:08 | 只看该作者
采集是DMA来完成的,你可以采集一行处理一行,也可以采完了再处理,不需要在主循环里等待
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

注册会员

Rank: 2

积分
91
威望
60
贡献
17
兑换币
28
注册时间
2016-9-29
在线时间
7 小时
毕业学校
河南大学
8#
发表于 2016-10-1 21:29:54 | 只看该作者
感谢分享
回复 支持 反对

使用道具 举报

5

主题

66

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2638

优秀会员奖章在线王奖章

QQ
威望
1016
贡献
602
兑换币
636
注册时间
2015-1-18
在线时间
510 小时
毕业学校
JHUN
9#
发表于 2016-10-3 09:09:25 | 只看该作者
实践出真知
回复 支持 反对

使用道具 举报

21

主题

182

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1818

活跃会员奖章优秀会员奖章

威望
891
贡献
665
兑换币
437
注册时间
2016-10-22
在线时间
131 小时
10#
发表于 2016-11-1 20:26:43 | 只看该作者
很好的,可以了解了解。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 13:47 , Processed in 0.051301 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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