智能车制作

标题: 用K60调OV7725遇到瓶颈,望各位大神能稍微指点一下 [打印本页]

作者: 未来、向前看    时间: 2014-9-7 20:55
标题: 用K60调OV7725遇到瓶颈,望各位大神能稍微指点一下
最近开始调那个OV7725, 很多细节的地方都不是很明白,看着以往的资料,弄出来了个图像了。但是这个图像很不好,还希望各位大神能稍微指点指点,谢谢了[attach]69966[/attach]
一开始的图像就是这样的。

[attach]69965[/attach]
之后刷屏能刷出来清楚一点的图像,但是还是会有这种白色的杠杠。

[attach]69967[/attach]


这个也是一样的。

作者: Quixote    时间: 2014-9-7 20:55
未来、向前看 发表于 2014-9-8 16:42
消隐区

觉得可能是

作者: 未来、向前看    时间: 2014-9-7 20:55
我用的就是行场中断,然后用DMA传输,然后显示。
作者: 未来、向前看    时间: 2014-9-7 20:56
void PORTC_IRQHandler()      //行场中断函数
{      
  
    if((PORTC_ISFR & (1<<18)))   //行中断
    {
     if( H_EXTI == (SampleLine[image_row]))
      {
        DMA_EN(DMA_CH3); //使能通道CHn 硬件请求
        image_row++;
       }  
     H_EXTI++; // 行累加  //时序很重要,影响 DMA开启时间
     PORTC_ISFR |= (1<<18);//写1清中断标志位
     
    }         
   
    if(PORTC_ISFR & (1<<19))//场中断
    {
      PORTC_ISFR |= (1<<19);//写1清中断标志位   
      Show_Flag = 0;
      DMA_PORTx2BUFF_Init (DMA_CH3, (void *)&PTD_BYTE0_IN, uca_Buffer2, PTD9, DMA_BYTE1,IMAGE_COLUMN_2, DMA_falling_keepon);                                                                             //DMA_rising_keepon  DMA_falling_keepon
       //DMA通道4初始化,PTC0上升沿触发DMA传输,源地址为PTD_BYTE0_IN,目的地址为:Pix_Data ,每次传输1Byte,传输H次后停止传输,目的地址保持不变,关闭通道CHn 硬件请求
       // enable_irq(87);//使能PORTA中断
        ROWIRQ_A_Enable;//行中断使能
        Show_Flag = 0;  //发送图像标志
        H_EXTI = 0;    // 行中断清零
        image_row=0;
        temp_num=0;
      PORTC_ISFR  |= (1<<19);//写 1 清中断标志位
    }
}
作者: 未来、向前看    时间: 2014-9-7 20:57
    while(1)
    {
         
          if(Show_Flag==1)
          {
                  FIELDIRQ_B_Disable;
                   ROWIRQ_A_Disable;
                  DMA_IRQ_DIS(CH3); //禁止DMA通道传输
                  Show_Flag=0;
         //固定格式串口和上位机之间的协议
           uart_putchar(UART4,0x00);
          uart_putchar(UART4,0xff);
          uart_putchar(UART4,0x01);
          uart_putchar(UART4,0x00);
            for(i=0;i<IMAGE_ROW;i++)
              {
                    for(j=0;j<IMAGE_COLUMN_2;j=j+1)
                    {
                      uart_putchar(UART4,(uca_Buffer2[i][j]));
                       
                   }
              }
                /* for(i=0;i<IMAGE_ROW;i=i+1)
                    {
                        k=0;
                        for(j=0;j<IMAGE_COLUMN_2;j=j+1)
                        {
                           
                           if(uca_Buffer2[i][j] > 150)
                                uca_Buffer1[i][k++]=0;
                           else
                                uca_Buffer1[i][k++]=1;
                          uart_putchar(UART4,(uca_Buffer2[i][j]));
                           //time_delay_ms(10);
                             
                          }
                   }*/
                //LCD_image_Diplay();                                                         
                 DMA_IRQ_EN(CH3); //允许DMA通道传输
                 FIELDIRQ_B_Enable;
        }
   }
}


这是主函数里面的主要语句。
作者: Quixote    时间: 2014-9-8 03:00
估计、明年比赛你会很给力的哟。
作者: alastorid    时间: 2014-9-8 06:35
长宽比太奇耙会遇到这样的问题
作者: 未来、向前看    时间: 2014-9-8 09:48
alastorid 发表于 2014-9-8 06:35
长宽比太奇耙会遇到这样的问题

我采集的是160列96行。

作者: 未来、向前看    时间: 2014-9-8 09:49
Quixote 发表于 2014-9-8 03:00
估计、明年比赛你会很给力的哟。

能不能不调戏学弟嘛, 有什么建议嘛. 真心弄了几天了  今天早上来调 居然发现图像好一点了,但是图像还是存在白杠杠

作者: alastorid    时间: 2014-9-8 12:42
160改成80看看
作者: 小号子    时间: 2014-9-8 12:46
直接用场中断
作者: 未来、向前看    时间: 2014-9-8 12:50
alastorid 发表于 2014-9-8 12:42
160改成80看看

一行采80列 会不会有点少,  我先改试一试

作者: 未来、向前看    时间: 2014-9-8 12:51
小号子 发表于 2014-9-8 12:46
直接用场中断

有点不理解为什么要直接用中断?
作者: 未来、向前看    时间: 2014-9-8 12:59
alastorid 发表于 2014-9-8 12:42
160改成80看看

我试过了,效果比之前的都差,图像会乱掉的。

作者: Sydney    时间: 2014-9-8 13:03

作者: 小号子    时间: 2014-9-8 13:13
未来、向前看 发表于 2014-9-8 12:51
有点不理解为什么要直接用中断?

用野火的库,应该是没有问题的

作者: alastorid    时间: 2014-9-8 13:44
本帖最后由 alastorid 于 2014-9-8 13:48 编辑

我宽240 长60有跟你一样的杠杠

有时杠杠会连成一片

宽80长60就没这个问题

不过我宽160长96 没杠杠
我是PCLK下降沿触发DMA采集 有开内建上拉电阻
也是用k60 k60fx512vlq15 龙丘的
7725是野火的鹰眼
160改成80 上位机程序有没有跟着改阿?


作者: Quixote    时间: 2014-9-8 16:27
未来、向前看 发表于 2014-9-8 09:49
能不能不调戏学弟嘛, 有什么建议嘛. 真心弄了几天了  今天早上来调 居然发现图像好一点了,但是图像还是 ...

我还没搭车。。等规则出来再说。。

作者: Quixote    时间: 2014-9-8 16:28
未来、向前看 发表于 2014-9-8 09:49
能不能不调戏学弟嘛, 有什么建议嘛. 真心弄了几天了  今天早上来调 居然发现图像好一点了,但是图像还是 ...

我以前写VGA驱动时候,出现白杠杠的主要原因是场消隐也读取了。所以我觉得,你得把场数数对,或者直接用别的处理。

作者: 未来、向前看    时间: 2014-9-8 16:41
Quixote 发表于 2014-9-8 16:28
我以前写VGA驱动时候,出现白杠杠的主要原因是场消隐也读取了。所以我觉得,你得把场数数对,或者直接用别 ...

喔,  好的谢谢哈。   你的意思就是我把场的消影区的信号也采集了吧

作者: 未来、向前看    时间: 2014-9-8 16:42
Quixote 发表于 2014-9-8 16:28
我以前写VGA驱动时候,出现白杠杠的主要原因是场消隐也读取了。所以我觉得,你得把场数数对,或者直接用别 ...

消隐区

作者: 未来、向前看    时间: 2014-11-6 22:14
alastorid 发表于 2014-9-8 13:44
我宽240 长60有跟你一样的杠杠

有时杠杠会连成一片

谢谢你的解答

作者: vincent_goodwin    时间: 2014-11-23 01:19
楼主,我也在调OV725,但是图像很奇怪。能问下你的寄存器的初始化是怎么搞的  PCLK的频率是怎么改的
被搞的很头疼啊
作者: 未来、向前看    时间: 2014-11-26 21:58
vincent_goodwin 发表于 2014-11-23 01:19
楼主,我也在调OV725,但是图像很奇怪。能问下你的寄存器的初始化是怎么搞的  PCLK的频率是怎么改的
被搞的 ...

寄存器是根据野火的给的例程改的,PCLK 处理的还需要看你使用内部时钟还是外部时钟,PCLK是使用它内部时钟模块,也可以使用XCLK是外部时钟,也就是可以利用单片机定时器产生一个脉冲。

作者: vincent_goodwin    时间: 2014-11-27 13:49
未来、向前看 发表于 2014-11-26 21:58
寄存器是根据野火的给的例程改的,PCLK 处理的还需要看你使用内部时钟还是外部时钟,PCLK是使用它内部时钟 ...

现在搞懂了,谢谢了

作者: 未来、向前看    时间: 2014-11-28 16:43
vincent_goodwin 发表于 2014-11-27 13:49
现在搞懂了,谢谢了

你是用的野火的还是普通的OV7725
作者: vincent_goodwin    时间: 2014-11-29 19:15
未来、向前看 发表于 2014-11-28 16:43
你是用的野火的还是普通的OV7725

前几天在试普通的,结果后来才意识到没法只输出灰度图像,然后就还是回归鹰眼了

作者: 未来、向前看    时间: 2014-12-1 16:07
vincent_goodwin 发表于 2014-11-29 19:15
前几天在试普通的,结果后来才意识到没法只输出灰度图像,然后就还是回归鹰眼了

好吧,我手头只有普通的  鹰眼的给别人调去了。

作者: 六步上篮    时间: 2015-1-28 23:18
楼主你的图像怎么样了   我也用的普通的7725  图像很差




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