Пример #1
0
/*!
 *  @brief      鹰眼ov7725 DMA中断服务函数
 *  @since      v5.0
 */
void ov7725_eagle_dma()
{
    //ov7725_eagle_img_flag = IMG_FINISH ;
    DMA_IRQ_CLEAN(DMA_CH4);           //清除通道传输中断标志位
    DMA_DIS(DMA_CH4);                                     
    DMA_IRQ_DIS(DMA_CH4) ;
    //uart_putchar (UART0, 3);
}
Пример #2
0
void 
DMA0_ISR(void)
{
    DMA_DIS(CAMERA_DMA_CH);                 //关闭通道CHn 硬件请求
    DMA_IRQ_CLEAN(CAMERA_DMA_CH);           //清除通道传输中断标志位
    img_flag = IMG_FINISH ; 
    GPIOD_PTOR |= (1 << 13);
}
Пример #3
0
/*************************************************************************
*                             蓝宙电子工作室
*
*  函数名称:DMA_CH4_Handler
*  功能说明:DMA通道4的中断服务函数
*  参数说明:是采集摄像头数据,本数据位摄像头AD数据,可以采集到300个点。
设置标志位能够及时搬移。
*  函数返回:无
*  修改时间:2012-3-18    已测试
*  备    注:
*************************************************************************/
void DMA_CH0_Handler(void)
{
  
  //DMA通道0
  printf("DMA_CH0_Handler\n");
  DMA_IRQ_CLEAN(DMA_CH0);                             //清除通道传输中断标志位    (这样才能再次进入中断)
  DMA_EN(DMA_CH0);                                    //使能通道CHn 硬件请求      (这样才能继续触发DMA传输)
  //   uart_putchar(UART0,0XAA);
}
Пример #4
0
void DMA_CH4_Handler(void)
{
  //DMA通道4
  DMA_IRQ_CLEAN(DMA_CH4) ;
  DMA_IRQ_DIS(DMA_CH4);
  DMA_DIS(DMA_CH4);
  DMA_Over_Flag = 1 ;
  
}
Пример #5
0
/*!
 *  @brief      鹰眼ov7725管脚初始化(内部调用)
 *  @since      v5.0
 */
void ov7725_eagle_port_init()
{
    //DMA通道0初始化,PTA27触发源(默认上升沿),源地址为PTB_B0_IN,目的地址为:IMG_BUFF,每次传输1Byte
    dma_portx2buff_init(DMA_CH4, (void *)&PTE_B0_IN, ov7725_eagle_img_buff[0], PTD12, DMA_BYTE1,DATACOUNT , DADDR_KEEPON);

    DMA_DIS(DMA_CH4);
    DMA_IRQ_DIS(DMA_CH4);
    DMA_IRQ_CLEAN(DMA_CH4);                   //清除通道传输中断标志位
    disable_irq(PORTD_IRQn);                        //关闭PTd的中断
    //set_irq_priority(90,0);
}
Пример #6
0
void DMA_CH4_Handler(void)
{
  //DMA通道4
  //  u16 i ;
 //    uart_putchar(UART0,0XAA);
    DMA_IRQ_CLEAN(DMA_CH4) ;
    DMA_IRQ_DIS(DMA_CH4);
    DMA_DIS(DMA_CH4);
    DMA_Over_Flg = 1 ;
  //   disable_irq(PORTC+87);

}
Пример #7
0
/*!
 *  @brief      鹰眼ov7725管脚初始化(内部调用)
 *  @since      v5.0
 */
void ov7725_eagle_port_init()
{
    //DMA通道0初始化,PTC10触发源(默认上升沿),源地址为PTC_B0_IN,目的地址为:IMG_BUFF,每次传输1Byte
    dma_portx2buff_init(CAMERA_DMA_CH, (void *)&PTC_B0_IN, (void *)ov7725_eagle_img_buff, PTC10, DMA_BYTE1, CAMERA_DMA_NUM, DADDR_KEEPON);

    DMA_DIS(CAMERA_DMA_CH);
    disable_irq(PORTC_IRQn);                        //关闭PTA的中断
    DMA_IRQ_CLEAN(CAMERA_DMA_CH);                   //清除通道传输中断标志位
    DMA_IRQ_EN(CAMERA_DMA_CH);
	
    port_init(PTC10, ALT1 | DMA_FALLING | PULLUP );         //PCLK

    port_init(PTC9, ALT1 | IRQ_RISING | PULLUP | PF);     //场中断,上拉,上降沿触发中断,带滤波

}
Пример #8
0
void PORTD_IRQHandler()
{
  
  /***************
  摄像头变量
  ***************/
  if(PORTD_ISFR & 0x2000)                                 //PTD13触发中断,采集的行中断
  {
    PORTD_ISFR  |= 0x2000;                              //写1清中断标志位  
    
    if(Sample_Line_flag )
    {       
      Sample_Line_flag = 0;  
          
      DMA_IRQ_CLEAN(DMA_CH4);                             //清除通道传输中断标志位    (这样才能再次进入中断)
      DMA_EN(DMA_CH4);                                    //使能通道CHn 硬件请求      (这样才能继续触发DMA传输) 
      DMA_IRQ_EN(DMA_CH4) ;                              //允许DMA通道传输
      
      Sample_Line_Count ++ ;                             //采样行数 
    }
    
    LineCount ++ ;
    if(*pSample_Line == LineCount )
    {         
      Sample_Line_flag = 1 ;
      if(*pSample_Line != 0xFFff )
      {
        pSample_Line ++ ;
      }
    }
  }
  
  if(PORTD_ISFR & 0x4000)                     //PTD14触发中断,采集的场中断。
  {
    PORTD_ISFR  |= 0x4000;                   //写1清中断标志位
    pSample_Line = &Sample_LineAryy[0] ;    //初始化要采集的行数
    LineCount = 0 ;                         //清除摄像头行数
  }
  
}
Пример #9
0
/*!
 *  @brief      鹰眼ov7725 DMA中断服务函数
 *  @since      v5.0
 */
void ov7725_eagle_dma()
{
    ov7725_eagle_img_flag = IMG_FINISH ;
    DMA_IRQ_CLEAN(CAMERA_DMA_CH);           //清除通道传输中断标志位
}