智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1018|回复: 1
打印 上一主题 下一主题

关于设置标志位的问题(摄像头)我的场标志始终检测不到啊,跪求大神解决

[复制链接]

10

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
410
QQ
威望
205
贡献
93
兑换币
107
注册时间
2015-1-31
在线时间
56 小时
毕业学校
上海交通大学
跳转到指定楼层
1#
发表于 2015-3-30 17:18:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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();//发送原始图像


    }
  }
}  


回复

使用道具 举报

8

主题

67

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1116
QQ
威望
541
贡献
319
兑换币
341
注册时间
2014-9-29
在线时间
128 小时
毕业学校
湖北师范学院
2#
发表于 2015-3-31 10:00:37 | 只看该作者
你的偶场处理里有send_image(),你换到main()去是偶场处理时间不够?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 21:17 , Processed in 0.036691 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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