智能车制作

标题: 摄像头程序,求高手看看问题 [打印本页]

作者: linping9656    时间: 2012-8-20 17:35
标题: 摄像头程序,求高手看看问题
K60;


#include "common.h"
#include "HAL_UART.h"
#include "HAL_GPIO.h"
#include "isr.h"
#include "HAL_FTM.h"

#define hang_end 100
#define lie_end 260
#define lie 32


uint8 imag[lie][hang_end]={0};
uint8 get_n[]={          16,29,41,52,62,71,79,86,92,98,
                         103,108,112,116,120,124,128,132,135,138,
                         141,144,147,150,153,156,159,162,165,168,
                         170,172,174,176,178,180,182,184,186,188,
                         190,192,194,196,198,200,202,204,206,208,
                         210,211,212,242,243,245,246,247,248,249,250
               };
uint8 c_lie=0,lie_count=0,hang_c=0;
/********************************************************************/
void hang_isr(void);
void chuang_isr();
/********************************************************************/
void main (void)
{
  /***********串口初始化********************************************/
  LPLD_UART_Init(UART2_BASE_PTR,9600);//Txd=D3,Rxd=D2;
  /***********中断设置**********************************************/
  LPLD_GPIO_Init(PORTD_BASE_PTR,0,0,1,0);
  LPLD_GPIO_Init(PORTB_BASE_PTR,0,0,1,0xA);//下降沿
  LPLD_GPIO_SetIsr(PORTB_BASE_PTR,chuang_isr);//场中断
  LPLD_GPIO_Init(PORTC_BASE_PTR,0,0,1,0xA);//
  LPLD_GPIO_SetIsr(PORTC_BASE_PTR,hang_isr);//行中断
  //--------------PWM_INIT-----------------------------------------//

  while(1)
  {

  }
}
/********************************************************************/
void hang_isr()//行中断
{
  if(PORTC_ISFR==0x00000001)
  {
    if(lie_count==get_n[c_lie])
    {
      //delay
      for(hang_c=0;hang_c<=hang_end;hang_c++)
      {
        imag[c_lie][hang_c]=LPLD_GPIO_Get_b(PTD_BASE_PTR,0);
        LPLD_UART_PutChar(UART2_BASE_PTR,imag[c_lie][hang_c]);
      }
      c_lie++;
    }
    lie_count++;
  }
}
void chuang_isr()
{
  if(PORTB_ISFR==0x00000001)
  {
    hang_c=0;
    lie_count=0;
    c_lie=0;
  }
}

采集不了图像。是不是没开中断?

作者: Autosmarter    时间: 2012-8-20 17:45
什么症状?
作者: linping9656    时间: 2012-8-20 17:46
Autosmarter 发表于 2012-8-20 17:45
什么症状?

就是串口没有返回啊。接收不到数据,是哪里不对?

作者: Smile_Sun    时间: 2012-8-20 18:55
设断点看看
作者: Autosmarter    时间: 2012-8-20 18:58
linping9656 发表于 2012-8-20 17:46
就是串口没有返回啊。接收不到数据,是哪里不对?

先分别测试串口是否正确可以收发数据,再看是否可以进行,场中断,看场中断之间有多少个行中断,都没问题就三个再整合。。。话说读一个数据发一个,你串口够速度么?

作者: linping9656    时间: 2012-8-20 19:05
Autosmarter 发表于 2012-8-20 18:58
先分别测试串口是否正确可以收发数据,再看是否可以进行,场中断,看场中断之间有多少个行中断,都没问题 ...

呵呵  受教了

作者: 星斗520    时间: 2012-8-20 19:14
这个 串口没有这么神奇的速度的 ! 另没有清中断标志位  再另场中断要设成上升沿下降沿均可触发(这不是你发不了数据的关键 关键还是 请标志位 如果其他设置没错的话)
作者: linping9656    时间: 2012-8-20 20:00
星斗520 发表于 2012-8-20 19:14
这个 串口没有这么神奇的速度的 ! 另没有清中断标志位  再另场中断要设成上升沿下降沿均可触发(这不是你发 ...

我单步调试了一下,发现程序在启动的地方就有问题了。BL start  这个地方就不能往前了

作者: linping9656    时间: 2012-8-20 21:11
星斗520 发表于 2012-8-20 19:14
这个 串口没有这么神奇的速度的 ! 另没有清中断标志位  再另场中断要设成上升沿下降沿均可触发(这不是你发 ...

串口我设置了 可以发送数据

作者: 洋葱圈    时间: 2012-8-20 21:15
enable_irq (88); //PORTB 中断使能
enable_irq (89); //PORTC 中断使能

摄像头DMA的例程可以参见LPLD开源包中的“LPLD_GPIO_DMA”例程
作者: linping9656    时间: 2012-8-20 21:40
洋葱圈 发表于 2012-8-20 21:15
enable_irq (88); //PORTB 中断使能
enable_irq (89); //PORTC 中断使能

谢谢LPLD大

作者: linping9656    时间: 2012-8-20 22:48
洋葱圈 发表于 2012-8-20 21:15
enable_irq (88); //PORTB 中断使能
enable_irq (89); //PORTC 中断使能

OV5116的数据口是一位的,能用DMA吗

作者: tujunjie    时间: 2012-8-21 09:34
先看看数组里面有没有数,要是有数,那就是串口问题了,
作者: wanglichao    时间: 2012-8-21 10:36
linping9656 发表于 2012-8-20 22:48
OV5116的数据口是一位的,能用DMA吗

5116是模拟的摄像头,手创的比较器输出的是0和1信号,好像不是图像吧
作者: linping9656    时间: 2012-8-21 10:55
wanglichao 发表于 2012-8-21 10:36
5116是模拟的摄像头,手创的比较器输出的是0和1信号,好像不是图像吧

嗯  0和1可以组成赛道信息 不是吗

作者: wanglichao    时间: 2012-8-21 11:02
关键是你的摄像头输出是跟阈值有关系的,比较器也是比较模拟摄像头的电压输出,如果你的阈值没调好,也不会有正确的数据啊,最好还是用数字的或者模拟的加片外AD吧
作者: linping9656    时间: 2012-8-21 11:11
wanglichao 发表于 2012-8-21 11:02
关键是你的摄像头输出是跟阈值有关系的,比较器也是比较模拟摄像头的电压输出,如果你的阈值没调好,也不会 ...

哦 那是把AV口接出来AD啊





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