智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2905|回复: 5
打印 上一主题 下一主题

ov7620 dma传输 进入不了中断,求帮忙啊!

[复制链接]

1

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
449
威望
211
贡献
138
兑换币
136
注册时间
2014-12-3
在线时间
50 小时
毕业学校
上海工程技术大学
跳转到指定楼层
1#
发表于 2015-4-2 23:04:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是ov7620摄像头dma传输数据,用的是羽良工作室的采集代码,运行时没有错误,但是调试的时候一直进入不了行中断,而且行计数值也一直处于很奇怪的状态,求各位大神帮忙化解。
    V_Cnt=0;                                    //行计数
    Is_SendPhoto=0;   //变量初始化                             //从串口发送图像
    u16 i=0,j=0;

   exti_init(PORTA,29,9);            //行中断,PORTA29 端口外部中断初始化 ,上升沿触发中断,内部下拉
    disable_irq(87);                  //行中断关闭
    exti_init(PORTB,0,10);            //场中断,PORTB0 端口外部中断初始化 ,下降沿触发中断,内部下拉
    uart_init(UART0,170000,115200);
    EnableInterrupts;
    while(1)
    {  
                            //串口调试
      if(Is_SendPhoto)                                                                                                                                 
      {

      /*************************************************************************/
      //直接发送灰度数据,上位机软件会把图像信息显示出来
      disable_irq(87);
      disable_irq(88);                  //关闭PORTB中断,即关闭场中断,防止串口发送图像数据进程被打乱
      //以下四句话是固定格式,是串口和上位机软件之间的协议
     uart_putchar(UART0,0);
      uart_putchar(UART0,255);
      uart_putchar(UART0,1);
      uart_putchar(UART0,0);
      for(i=0;i<V;i++)
      {
        for(j=0;j<H;j+=4)
        {         
            uart_putchar(UART0,Pix_Data[j]);

        }
      }
enable_irq(88);                   //打开PORTB中断
      enable_irq(87);
      Is_SendPhoto=0;

uart_putchar(UART0,'\r');
      uart_putchar(UART0,'\n');

    }

}
}
下面是另一个c文件中的中断
void DMA_CH4_Handler(void)
{
    DMA_IRQ_CLEAN(DMA_CH4);                                 //清除通道传输中断标志位    (这样才能再次进入中断)
    DMA_DIS(DMA_CH4);                                       //采集完H个数据后进入这个DMA中断,停止DMA传输。行中断中打开DMA传输
    /********************/
    //串口调试用到
      if(V_Cnt == 240)
      Is_SendPhoto = 1;
    /*******************/   
}

/****************************************************
//行中断处理函数
void PORTA_IRQHandler()
{
    if((PORTA_ISFR & (1<<29)))                              //PTA29触发中断,行中断
    {
      PORTA_ISFR |= (1<<29);                                //写1清中断标志位
      /**************用户任务**************************************************/
      if((++V_Cnt)%6 == 0)                                  //判断该行数据是否需要,根据自己需要的行数自己设定判别条件
      {
        DMA_EN(DMA_CH4);                                    //使能通道CHn 硬件请求
      }
                    //可以在这里判断需要的数据是否已经采集完,可以设置一个标志位
      /****************
      *这里也可以进行数据处理
      *****************/
      /************************************************************************/
    }
}

//场中断处理函数
void PORTB_IRQHandler()
{
    if(PORTB_ISFR & (1<<0))                                 //PTB0触发中断,场中断
    {
      PORTB_ISFR |= (1<<0);                                 //写1清中断标志位   
      Is_SendPhoto = 0;                                   //发送图像标志,串口调试要用
      /**************用户任务**************************************************/
      //奇偶场判别

      FieldCounter++;                        
      if(FieldCounter>= 2)
      {
        FieldCounter = 0;
      }

      //奇场      采集图像   
      if(FieldCounter == 0)
      {
        DMA_PORTx2BUFF_Init(DMA_CH4, (void *)&PTD_BYTE0_IN, Pix_Data, GPIOC,GPIO_Pin_0, DMA_BYTE1, H, DMA_rising_keepon);
        //DMA通道4初始化,PTC0上升沿触发DMA传输,源地址为PTD_BYTE0_IN,目的地址为:Pix_Data ,每次传输1Byte,传输H次后停止传输,目的地址保持不变,关闭通道CHn 硬件请求
        enable_irq(87);                                     //使能PORTA中断,即开启行中断,PORTA的ISR中断号为87
        V_Cnt=0;                                            //行采集计数清零
        Is_SendPhoto = 0;                                   //发送图像标志

     }
      //偶场
     else
      {
        DMA_DIS(DMA_CH4);                                   //停止DMA传输
        disable_irq(87);                                    //关闭PORTA中断,即关闭行中断,PORTA的ISR中断号为87
        disable_irq(88);
        Is_SendPhoto = 1;                                   //发送图像标志
     }
      上面是采集部分,然后下面就是我烧写程序调试时,用watch窗口看的变量,V_Cnt形式不懂,然后行中断的数字也感觉不对,不应该是1吗?求大神帮忙啦~
      




本帖子中包含更多资源

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

x
回复

使用道具 举报

4

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
威望
131
贡献
33
兑换币
71
注册时间
2015-4-15
在线时间
19 小时
毕业学校
qushida
2#
发表于 2015-5-30 20:36:10 | 只看该作者
有相同的疑问呢
解决了么?怎么弄的???
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
174
威望
90
贡献
46
兑换币
47
注册时间
2015-5-14
在线时间
19 小时
毕业学校
3#
发表于 2015-8-19 10:06:28 | 只看该作者
me too!
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

注册会员

Rank: 2

积分
174
威望
90
贡献
46
兑换币
47
注册时间
2015-5-14
在线时间
19 小时
毕业学校
4#
发表于 2015-8-19 10:07:40 | 只看该作者
k60+ov760 DMA_CH4_Handler中断进不了
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
201
威望
101
贡献
64
兑换币
51
注册时间
2016-6-25
在线时间
18 小时
5#
发表于 2016-12-10 21:01:26 | 只看该作者
请问问题解决了吗
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
97
威望
51
贡献
30
兑换币
29
注册时间
2017-4-10
在线时间
8 小时
毕业学校
新疆大学
6#
发表于 2017-4-16 11:41:15 | 只看该作者
同问怎么解决
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-18 18:34 , Processed in 0.073433 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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