智能车制作

标题: 模拟摄像头图像采集总是不正确 [打印本页]

作者: hjl1396    时间: 2013-3-19 16:32
标题: 模拟摄像头图像采集总是不正确
void FTM0_IRQHandler()
{
    u32 s = FTM0_STATUS;             //读取捕捉和比较状态     
    if( s & (1 << 5) )     
    {
        PPC[0].x_right[PPC[0].white_n] = FTM0_CNT;
        
        
         FTM_IRQ_EN(FTM0, CH6);
         FTM_IRQ_DIS(FTM0, CH5);
     }
    else if( s & (1 << 6) )
    {
        PPC[0].x_left[PPC[0].white_n] = FTM0_CNT;
        PPC[0].white_n++;
        FTM_IRQ_DIS(FTM0, CH6);
            
        if(PPC[0].white_n==Pulse_Max_Num)
            {
              FTM_IRQ_DIS(FTM0, CH5);
              
            }
        
            FTM_IRQ_EN(FTM0, CH5);
        /*********************/
    }
   
    FTM0_STATUS = 0x00;             //清中断标志位
}
void PORTD_IRQHandler()
{
  u32 a = PORTD_ISFR;

   if(a & (1 << 3))           //PTD3触发场中断
    {
       Field_CNT++;
       Line_CNT=0;
       Field_over=0;
    }
  else if((a & (1 << 4))&&(!Field_over))           //PTD4触发行中断
    {
      FTM0_CNT=0;         
      if(Line_CNT==15)
        {
   
          PPC[0].white_n = 0;
          FTM_IRQ_DIS(FTM0, CH6);
          enable_irq(62);
          FTM_IRQ_EN(FTM0, CH5);
        }
      if(Line_CNT==(First_Capture_Line_N+Line_Max_Num)&&Mode==Video_Get)
      {
          Mode=Cache;
          disable_irq(90);
      }
      Line_CNT++;
      
    }
  PORTD_ISFR |= 0xFFFFFFFF;        //写1清中断标志位
}

求大神看一下这段程序有什么错误没,主要是利用ftm的计数器(靠捕捉上升沿和下降沿的时间)来采集15行中断的图像数据,按理说对于相同的图像应该得到相同的数据,但得到的数据不一样,同时感觉采到的数据不对,行中断用的是PTD4,場中断用的是PTD3,捕捉上升沿用的是PTD5,下降沿用的是PTD6,搞好长时间总是不对,中断都能进去。求帮忙啊!!!

作者: cgtiso    时间: 2013-3-19 16:35
什么方法采集的啊
作者: hjl1396    时间: 2013-3-19 16:40
cgtiso 发表于 2013-3-19 16:35
什么方法采集的啊

用的是硬件阈值化处理的信号,然后想用k60的ftm模块检测每一行的上升沿和下降沿的时间来得到一行黑白分布

作者: cgtiso    时间: 2013-3-19 17:01
hjl1396 发表于 2013-3-19 16:40
用的是硬件阈值化处理的信号,然后想用k60的ftm模块检测每一行的上升沿和下降沿的时间来得到一行黑白分布 ...

我说我怎么看不懂啊  硬件二值化的啊   
作者: hjl1396    时间: 2013-3-19 17:03
cgtiso 发表于 2013-3-19 17:01
我说我怎么看不懂啊  硬件二值化的啊

对,硬件二值化测过了没问题,就是处理这一块有问题

作者: cgtiso    时间: 2013-3-19 17:19
hjl1396 发表于 2013-3-19 17:03
对,硬件二值化测过了没问题,就是处理这一块有问题

直接利用端口读值呢   就是说利用行场中断  读0和1啊

作者: hjl1396    时间: 2013-3-19 17:31
cgtiso 发表于 2013-3-19 17:19
直接利用端口读值呢   就是说利用行场中断  读0和1啊

那样太浪费时间了,所以想用行程编码,但是总是有问题

作者: hjl1396    时间: 2013-3-19 17:32
cgtiso 发表于 2013-3-19 17:19
直接利用端口读值呢   就是说利用行场中断  读0和1啊

感觉中断没用好,但又不知道哪儿有问题
作者: cgtiso    时间: 2013-3-19 21:10
hjl1396 发表于 2013-3-19 17:32
感觉中断没用好,但又不知道哪儿有问题

DMA会么




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