智能车制作

标题: ov7620 dma传输 进入不了中断,求帮忙啊! [打印本页]

作者: 咪了个咪    时间: 2015-4-2 23:04
标题: ov7620 dma传输 进入不了中断,求帮忙啊!
我用的是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吗?求大神帮忙啦~
[attach]75785[/attach]     





作者: 冷暖自知123    时间: 2015-5-30 20:36
有相同的疑问呢
解决了么?怎么弄的???

作者: 求解释    时间: 2015-8-19 10:06
me too!

作者: 求解释    时间: 2015-8-19 10:07
k60+ov760 DMA_CH4_Handler中断进不了

作者: 不是游客    时间: 2016-12-10 21:01
请问问题解决了吗
作者: DMLLL    时间: 2017-4-16 11:41
同问怎么解决




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2