智能车制作

标题: OV7620摄像头标志位问题,我的场标志老为0,请问一下各位大神,怎么处理啊 [打印本页]

作者: 锁二娃车队    时间: 2015-3-30 17:22
标题: OV7620摄像头标志位问题,我的场标志老为0,请问一下各位大神,怎么处理啊
u8 VSYN_Flag;
void main()
{


DisableInterrupts;                             //禁止总中断
uart_init (UART0 , 115200);                      //初始化UART0,输出脚PTA15,输入脚PTA14,串口频率 9600
///////////////////////////////////


pit_init_ms(PIT0,5);                                    //初始化PIT0,定时时间为: 5ms
  OV7620_Init();
  PWM_Init();
  EnableInterrupts;        
  while(1)

  if( VSYN_Flag == 1)   //SCCB写成功   图像采集一帧结束///////////函数就在这里标志位老是0,请大家帮忙看看吧,谢谢了
      {  
      send_image();//上位机看原始图像、包含发送图像到上位机

      }
}




/////////////////////////////////////////////////////////////

extern u8 Buffer[ROW][COL];
extern u8 VSYN_Flag;
u8 DMA_Over_Flg,row_count =0;
u8 flag_jichang=0,ji_ou_choice=0;
volatile u16 ge_hang = 0 ;   //行计数u8
//每2cm确定的行


void PORTD_IRQHandler()     //行中断 60us
{
  if(PORTD_ISFR & (1 << 14))//PTD14触发中断,采集的行中断
  {
    PORTD_ISFR |=(1 << 14);//写1清中断标志位
    if(VSYN_Flag ==0)//不满一场返回
      return;
    row_count++ ;
    if(row_count==Ge_hang_tuxiang[ge_hang])//隔行采集
    {                          //通过PTD12像素同步信号进行触发,采集下降沿前200个(硬件进行了4分频),数据通过PTD前8个口传送,存入二维数组Buffer[ge_hang]中。
      DMA_PORTx2BUFF_Init (DMA_CH4, (void *)&PTD_BYTE0_IN,Buffer, PTD12, DMA_BYTE1,200, DMA_rising_down);  //_down
      DMA_IRQ_CLEAN(DMA_CH4); //清除通道传输中断标志位    (这样才能再次进入中断)
      DMA_IRQ_EN(DMA_CH4) ;  //允许DMA通道传输
      DMA_EN(DMA_CH4);       //使能通道CHn 硬件请求      (这样才能继续触发DMA传输)  
      ge_hang++;
      if(ge_hang >= 50)//采样行数 50 这里采集的50行是已经隔行处理的
      {
        ge_hang=0;
      }      
    }
  }

   if(PORTD_ISFR &(1 <<13))//PTC8触发中断,采集的场中断。
  {
    PORTD_ISFR  |= (1 <<13);//写1清中断标志位
    ji_ou_choice++;//奇偶场判断
    if(ji_ou_choice==1)//奇场采集
    {
      row_count = 0 ;
      ge_hang=0;
      VSYN_Flag==1;//满一场进入标志
  //    enable_irq(PORTD+87);  
    }
    else if(ji_ou_choice>=2)//290us 偶场处理
    {
      ji_ou_choice=0;
      disable_irq(PORTD+87);
        //process();拟合图像
      //display_saidao();//oled显示赛道
       // display_OLED();//1.2ms
      //send_image();//发送原始图像


    }
  }
}  


作者: chy_au074    时间: 2015-7-24 08:25
是不是场信号有杂波,意思就是本来场信号要好几百个行信号来了才来一次,因为杂波原因,估计几十个行信号来了,就把杂波误判成场信号来了,并且你在场中断对count置0,所以你的count无法大于你要的行,所以你的标志位一直为0




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