智能车制作

标题: 急!!数字摄像头采集~~~~ [打印本页]

作者: sanshiling    时间: 2009-4-3 15:23
标题: 急!!数字摄像头采集~~~~
#include <hidef.h>      /* common defines and macros */
#include <MC9S12XS128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

unsigned int counter1,counter2,i,j;
unsigned char ccddadt[20][60]; //存放图像

void Start_PLL(void) //busCLK=40M
{
  REFDV=0x01;         
  SYNR=0x04;            
  asm{
    BRCLR CRGFLG,#$08,*
    BSET CLKSEL,#$80
    }               
}

void Ect_int(void) {      //ECT初始化
TSCR2_PR = 0x00; //分频系数为1
TIOS     = 0x00; //通道设置为捕捉
TCTL4    = 0x09;  // 1通道为下沿捕捉(捕捉场信号),0通道是上沿捕捉(捕捉行信号)
TSCR1_TFFCA = 1;  //快速清中断标志
TIE = 0x02;       //开场中断
TSCR1_TEN  = 1;   //正常计时

}

void main(void)
{
   DisableInterrupts;
   Start_PLL();     //初始化时钟
   Ect_int();       //初始化ECT
   DDRB=0x00;       //初始化IO口,B口为输入
   PORTB=0x00;  
   counter1=0;      //采样行计数器
   counter2=0;      //采样列计数器
   j=0;i=1;         //j场计数,i行计数
   for(;;)
      EnableInterrupts;
  
/* wait forever */
    /* please make sure that you never leave this function */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 8 void timerch0(void){               //行中断服务程序
  DisableInterrupts;
  TFLG1_C0F=1;
  if((i++)%10==0) {                           //隔十行采集
     for(;counter2<60;counter2++)
        ccddadt[counter1][counter2] = PORTB;  //采集一行图像
     counter2=0;
     if(counter1 == 20)                       //采满二十行终止行中断
       TIE_C0I=0;
     else {
        counter1++;
     }
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 9 void timerch1(void){           //场中断服务程序
  DisableInterrupts;
  TFLG1_C1F=1;
  j++;
  if(j==100)                              //采集第100场图像
    TIE=0x01;                              //开行中断
}
采集思路:当第一百场中断信号来时,开启行中断,行中断每隔十行采集一行数据,采用循环采集模式,采满二十行(既第200行后)停止采样;
我摄像头所照景物:白色背景,中间一条黑线,用上面程序采集图像数据如下:
ccddadt[20][60]:
ccddadt[0]  16 16 16 57 78 85 86 90 84 79 20 18 19 25 23 68 78 95 84 86 ...80 16 16...
ccddadt[1]  16 16 55 68 87 84 79 83 90 19 22 24 23 22 65 78 98 85 83 ...79 16 16 16...
ccddadt[2]  16 54 68 87 85 79 92 93 20 21 17 19 23 68 87 98 87 76 ...87 16 16 16 16...
.
.
.
ccddadt[10] 87 86 98 18 20 19 17 21 76 88 78 87 87 ...78 16 16 16 ...16 76 87 86 78...
.
.
.
我是新手所采图像如上,采出的图像老是感觉在移动呢,请教各位前辈这是哪方面出了问题,?我使用的是OV6620数字摄像头
作者: zyl    时间: 2009-4-3 19:35
BRCLR CRGFLG,#$08,*
    BSET CLKSEL,#$80
请问下这两句是什么意思啊?
作者: zyl    时间: 2009-4-3 20:04
还有想问下FODD管脚用不用有什么区别吗? 谢了~
作者: xzw2011    时间: 2009-4-4 12:36
先下来看看
作者: starjiajia    时间: 2009-10-17 20:48
先研究研究
作者: hufangwu    时间: 2009-11-20 10:26
怎么没有人顶啊 请大家加我的QQ:417177320;大家一起研究数字摄像头啊
作者: starjiajia    时间: 2009-12-22 17:50
灰度值16  应该采到消隐区了吧
作者: 红色之旅    时间: 2010-5-30 10:57
那个SCBB怎么用的 不用也可以吗?
作者: hubei7513    时间: 2010-11-2 11:43
俺也想知道
作者: liangliheng    时间: 2011-4-21 15:50

作者: 2009gxs    时间: 2012-4-6 23:37
zyl 发表于 2009-4-3 20:04
还有想问下FODD管脚用不用有什么区别吗? 谢了~

FODD 奇场同步
看你要怎么用了


作者: cherry1993    时间: 2013-4-22 21:07
2009gxs 发表于 2012-4-6 23:37
FODD 奇场同步
看你要怎么用了

FODD与VSYNC有什么区别,能不能详细讲讲?

作者: 劫色老和尚    时间: 2013-4-23 19:19
求指导啊!!!




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