智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1243|回复: 0
打印 上一主题 下一主题

参考别人用拉普兰德库写的程序读不出图像啊!!求组织帮忙看下程序

[复制链接]

5

主题

66

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1361
威望
676
贡献
379
兑换币
435
注册时间
2012-12-24
在线时间
153 小时
毕业学校
没有
跳转到指定楼层
1#
发表于 2014-4-30 16:17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main()
{

   DisableInterrupts;               //关闭中断开始初始化数据

   //sccb_init();             //-----SCCB初始化,用于配置摄像头状态  
   UART_Init();             //-----UART初始化,用于初始化串口
   gpio_int_all();             //-----外部中断初始化,用于摄像头中断触发
   Image_Init();            //----图像数组初始化
   //sccb_refresh();

   EnableInterrupts;
    while(1)
    {

      if( VSYN_Flag == 1)   // 图像采集一帧结束
      ImageProc();  
      EnableInterrupts;
    }
}

void UART_Init()
{
  UART1_init.UART_Uartx=UART5;
  UART1_init.UART_BaudRate=115200;
  LPLD_UART_Init(UART1_init);
}

void gpio_int_all()
{
  //----初始化外部中断---//
  //  //HREF----PORTB23 端口外部中断初始化 ,上升沿触发中断,内部下拉
  //  //VSYN----PORTA27 端口外部中断初始化 ,上升沿触发中断,内部下拉

  gpio_init_irq1.GPIO_PTx=PTB;
  gpio_init_irq1.GPIO_Pins=GPIO_Pin23;
  gpio_init_irq1.GPIO_Dir=DIR_INPUT;  
  gpio_init_irq1.GPIO_PinControl=INPUT_PULL_DOWN|IRQC_RI|INPUT_PF_EN;
  gpio_init_irq1.GPIO_Isr=PORTB_IRQbb;
  LPLD_GPIO_EnableIrq(gpio_init_irq1);

  LPLD_GPIO_Init(gpio_init_irq1);

  gpio_init_irq2.GPIO_PTx=PTA;
  gpio_init_irq2.GPIO_Pins=GPIO_Pin27;
  gpio_init_irq2.GPIO_Dir=DIR_INPUT;  
  gpio_init_irq2.GPIO_PinControl=INPUT_PULL_DOWN|IRQC_RI|INPUT_PF_EN;
  gpio_init_irq2.GPIO_Isr=PORTA_IRQaa;

  LPLD_GPIO_EnableIrq(gpio_init_irq2);
  LPLD_GPIO_Init(gpio_init_irq2);



  //ptc19  pclk  触发dma传输
  gpio_init_irq3_dma.GPIO_PTx=PTC;
  gpio_init_irq3_dma.GPIO_Pins=GPIO_Pin19;
  gpio_init_irq3_dma.GPIO_Dir=DIR_INPUT;  
  gpio_init_irq3_dma.GPIO_PinControl=IRQC_DMARI|INPUT_PULL_DIS; //IRQC_DMAFA|INPUT_PULL_DIS;
  LPLD_GPIO_EnableIrq(gpio_init_irq3_dma);

  LPLD_GPIO_Init(gpio_init_irq3_dma);



  gpio_init_data4.GPIO_PTx=PTD;
  gpio_init_data4.GPIO_Pins=GPIO_Pin0_7;
  gpio_init_data4.GPIO_Dir = DIR_INPUT;
  gpio_init_data4.GPIO_PinControl = IRQC_DIS ;

  LPLD_GPIO_Init(gpio_init_data4);


  dma4_init.DMA_CHx = DMA_CH0;
  dma4_init.DMA_Req = PORTC_DMAREQ;      
  dma4_init.DMA_MajorLoopCnt = 320;        
  dma4_init.DMA_MinorByteCnt = 1;        
  dma4_init.DMA_SourceAddr = (uint32)&TD->;PDIR;      
  dma4_init.DMA_DestAddr =(uint32)&Buffer1;      
  dma4_init.DMA_DestAddrOffset = 1;      
  dma4_init.DMA_AutoDisableReq = TRUE;   

  //初始化DMA
  LPLD_DMA_Init(dma4_init);
}
void Image_Init()
{
    uint32 i,j;
      //----初始化图像数组----//
    for(i=0; i<ROW; i++)
    {
      for(j=0;j<COL ;j++)
      {
        Buffer1[j] = 0;
      }
    }

}
void ImageProc()
{
  uint32 i,j;

  DisableInterrupts;            //禁止中断

  /*/---------图像二值化,小于阈值为BLACK,大于阈值为WHITE---------
  for(i=0; i<ROW; i++)
  {
    for(j=0;j<COL ;j++)
    {
      if(Buffer1[j]<ThreadHold)              
        Buffer1[j]=BLACK;
      else
        Buffer1[j]=WHITE;        
     }
  }
     */

  LPLD_UART_PutChar(UART5 , 0xFF);

  for(i=0; i<ROW; i++)
  {
    for(j=0;j<COL ;j++)
    {
      LPLD_UART_PutChar(UART5 , Buffer1[j]);
    }
  }



    VSYN_Flag = 0;      
}


void PORTA_IRQaa()
{

   if(LPLD_GPIO_IsPinxExt(PORTA, GPIO_Pin27))
  {
    //检测到场开始信号,加载目的地址
    LPLD_DMA_LoadDstAddr(DMA_CH0, Buffer1);
    //清行中断标志,防止进入无效行中断
    LPLD_GPIO_ClearIntFlag(PORTB);
    enable_irq(PORTB_IRQn);
  }

}


void PORTB_IRQbb()
{


  if(LPLD_GPIO_IsPinxExt(PORTB, GPIO_Pin23))
  {
    //检测到行开始信号,使能DMA请求
    if(rowCnt<ROW)
    {
      LPLD_DMA_EnableReq(DMA_CH0);
      rowCnt++;
    }
    //行数采集已满,关闭中断
    else
    {
      //关GPIO中断
      disable_irq(PORTA_IRQn);
      disable_irq(PORTB_IRQn);
      VSYN_Flag = 1;
      rowCnt=0;
    }
  }

}

不知道咋回事啊,,读不出图像,,而且中断只进入一次,不知道哪配置有问题,请大神给指教一下。。。。。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-29 09:05 , Processed in 0.042062 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表