首页 OV6620摄像头采集程序基于XS128

OV6620摄像头采集程序基于XS128

举报
开通vip

OV6620摄像头采集程序基于XS128OV6620摄像头采集程序基于XS128 /****************************************************************************** *********************** ** OV6620 ImageAcquisition ** (c) Copyright 2009-2010, DEMOK ** All Rights Reserved ** ** V1.1.0 ***********************************...

OV6620摄像头采集程序基于XS128
OV6620摄像头采集程序基于XS128 /****************************************************************************** *********************** ** OV6620 ImageAcquisition ** (c) Copyright 2009-2010, DEMOK ** All Rights Reserved ** ** V1.1.0 ******************************************************************************* ********************/ #include /* common defines and macros */ #include "derivative.h" /* derivative-specific definitions */ #define ROW 36 #define COLUMN 70 #define ROW_START 11 #define ROW_MAX 280 #define THRESHOLD 0x20 unsigned char Buffer[ROW][COLUMN]; unsigned char Buffer_Temp[ROW][COLUMN]; unsigned char SampleFlag=0 ; unsigned char Interval; unsigned int m=0; unsigned int n=0; unsigned int Line=0; /*************************************************** ** 函数名称: PLL_Init ** 功能描述: 时钟初始化函数 ** 说明: ****************************************************/ void PLL_Init(void) { CLKSEL=0x00; //48mhz PLLCTL_PLLON=1; SYNR=0XC0 | 0X05; REFDV=0X80 | 0X01; POSTDIV=0X00; _asm(nop); _asm(nop); while(0==CRGFLG_LOCK);//锁相环锁定 CLKSEL_PLLSEL=1;//选定外部时钟 } /*************************************************** ** 函数名称: TIM_Init ** 功能描述: 行场中断初始化函数 ** 说明: ****************************************************/ void TIM_Init(void) { TIOS=0x00; //外部输入捕捉 0,1 通道 TCTL4=0x09; //通道0上升沿触发,通道 1 下降沿触发 TSCR1=0x80; //使能 TIE=0x03; //通道 0,1 中断使能 TFLG1=0xFF; //清中断标志位 } /*************************************************** ** 函数名称: IO_Init ** 功能描述: IO口初始化函数 ** 说明: ****************************************************/ void IO_Init(void) { DDRA=0X00; } /*************************************************** ** 函数名称: SCI_Init ** 功能描述: 串口初始化函数 ** 说明: ****************************************************/ void SCI_Init() { SCI0BD=312; //9600bps Baud Rate=BusClock/(16*SCIBD) SCI0CR1=0; //正常8位模式,无奇偶校验 SCI0CR2=0X2C; //发送允许 接受中断允许 } /************************************************** ** 函数名称: SCI_Write ** 功能描述: 给串行口写一个字符数据 ** 输 入: SendChar为写入字符 ** 输 出: 无 ** 说明: ***************************************************/ void SCI_Write(unsigned char SendChar) { while (!(SCI0SR1&0x80)); SCI0DRH=0; SCI0DRL=SendChar; } /************************************************** ** 函数名称: Image_Binaryzation ** 功能描述: 图像数据二值化 ** 输 入: row ** 输 出: 无 ** 说明: ***************************************************/ void Image_Binaryzation(unsigned int row) //二值化程序 { unsigned char *p_Image; unsigned char *q_Image; q_Image=&Buffer_Temp[row][0]; for(p_Image=&Buffer[row][0];p_Image<=&Buffer[row][COLUMN-1];p_Image++) {*(q_Image++)=*p_Image; } } /************************************************** ** 函数名称: Process ** 功能描述: 图像数据处理 ** 输 入: 无 ** 输 出: 无 ** 说明: ***************************************************/ void Process() { unsigned char i,j; for(i=0;iTHRESHOLD) SCI_Write('1') ; else SCI_Write('0') ; } SCI_Write(0x0D); SCI_Write(0X0A); } } /*************************************************** ** 函数名称: main ** 功能描述: 主函数 ** 说明: ****************************************************/ void main(void) { /* put your own code here */ PLL_Init(); TIM_Init(); IO_Init(); SCI_Init(); EnableInterrupts; for(;;) { Process(); // _FEED_COP(); /* feeds the dog */ } /* loop forever */ /* please make sure that you never leave main */ } /************************************************** ** 函数名称: 中断处理函数 ** 功能描述: 行中断处理函数 ** 输 入: 无 ** 输 出: 无 ** 说明: ***************************************************/ #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 8 PT0_Interrupt() { TFLG1_C0F=1; Line++; if ( SampleFlag == 0 || LineROW_MAX ) { return; } if(Line<=132) Interval=12; else if(Line>132&&Line<=200) Interval=8; else if(Line>200&&Line<=248) Interval=6; else Interval=4; if(Line%Interval==0) { Buffer[m][0]=PORTA; Buffer[m][n+0]=PORTA; Buffer[m][1]=PORTA; Buffer[m][n+1]=PORTA; Buffer[m][2]=PORTA; Buffer[m][n+2]=PORTA; Buffer[m][3]=PORTA; //Buffer[m][n+3]=PORTA; Buffer[m][4]=PORTA; Buffer[m][n+4]=PORTA; Buffer[m][5]=PORTA; Buffer[m][n+5]=PORTA; Buffer[m][6]=PORTA; Buffer[m][n+6]=PORTA; Buffer[m][7]=PORTA; //Buffer[m][n+7]=PORTA; Buffer[m][8]=PORTA; Buffer[m][n+8]=PORTA; Buffer[m][9]=PORTA; Buffer[m][n+9]=PORTA; Buffer[m][10]=PORTA; Buffer[m][n+10]=PORTA; Buffer[m][11]=PORTA; //Buffer[m][n+11]=PORTA; Buffer[m][12]=PORTA; Buffer[m][n+12]=PORTA; Buffer[m][13]=PORTA; Buffer[m][n+13]=PORTA; Buffer[m][14]=PORTA; Buffer[m][n+14]=PORTA; Buffer[m][15]=PORTA; //Buffer[m][n+15]=PORTA; Buffer[m][16]=PORTA; Buffer[m][n+16]=PORTA; Buffer[m][17]=PORTA; Buffer[m][n+17]=PORTA; Buffer[m][18]=PORTA; Buffer[m][n+18]=PORTA; Buffer[m][19]=PORTA; //Buffer[m][n+19]=PORTA; Buffer[m][20]=PORTA; Buffer[m][n+20]=PORTA; Buffer[m][21]=PORTA; Buffer[m][n+21]=PORTA; Buffer[m][22]=PORTA; Buffer[m][n+22]=PORTA; Buffer[m][23]=PORTA; //Buffer[m][n+23]=PORTA; Buffer[m][24]=PORTA; Buffer[m][n+24]=PORTA; Buffer[m][25]=PORTA; Buffer[m][n+25]=PORTA; Buffer[m][26]=PORTA; Buffer[m][n+26]=PORTA; Buffer[m][27]=PORTA; //Buffer[m][n+27]=PORTA; Buffer[m][28]=PORTA; Buffer[m][n+28]=PORTA; Buffer[m][29]=PORTA; Buffer[m][n+29]=PORTA; Buffer[m][30]=PORTA; Buffer[m][n+30]=PORTA; Buffer[m][31]=PORTA; //Buffer[m][n+31]=PORTA; Buffer[m][32]=PORTA; Buffer[m][n+32]=PORTA; Buffer[m][33]=PORTA; Buffer[m][n+33]=PORTA; Buffer[m][34]=PORTA; Buffer[m][n+34]=PORTA; Buffer[m][35]=PORTA; //Buffer[m][n+35]=PORTA; Buffer[m][36]=PORTA; Buffer[m][n+36]=PORTA; Buffer[m][37]=PORTA; Buffer[m][n+37]=PORTA; Buffer[m][38]=PORTA; Buffer[m][n+38]=PORTA; Buffer[m][39]=PORTA; //Buffer[m][n+39]=PORTA; Buffer[m][40]=PORTA; Buffer[m][n+40]=PORTA; Buffer[m][41]=PORTA; Buffer[m][n+41]=PORTA; Buffer[m][42]=PORTA; Buffer[m][n+42]=PORTA; Buffer[m][43]=PORTA; //Buffer[m][n+43]=PORTA; Buffer[m][44]=PORTA; Buffer[m][n+44]=PORTA; Buffer[m][45]=PORTA; Buffer[m][n+45]=PORTA; Buffer[m][46]=PORTA; Buffer[m][n+46]=PORTA; Buffer[m][47]=PORTA; //Buffer[m][n+47]=PORTA; Buffer[m][48]=PORTA; Buffer[m][n+48]=PORTA; Buffer[m][49]=PORTA; Buffer[m][n+49]=PORTA; Buffer[m][50]=PORTA; Buffer[m][n+50]=PORTA; Buffer[m][51]=PORTA; //Buffer[m][n+51]=PORTA; Buffer[m][52]=PORTA; Buffer[m][n+52]=PORTA; Buffer[m][53]=PORTA; Buffer[m][n+53]=PORTA; Buffer[m][54]=PORTA; Buffer[m][n+54]=PORTA; Buffer[m][55]=PORTA; //Buffer[m][n+55]=PORTA; Buffer[m][56]=PORTA; Buffer[m][n+56]=PORTA; Buffer[m][57]=PORTA; Buffer[m][n+57]=PORTA; Buffer[m][58]=PORTA; Buffer[m][n+58]=PORTA; Buffer[m][59]=PORTA; //Buffer[m][n+59]=PORTA; Buffer[m][60]=PORTA; Buffer[m][n+60]=PORTA; Buffer[m][61]=PORTA; Buffer[m][n+61]=PORTA; Buffer[m][62]=PORTA; Buffer[m][n+62]=PORTA; Buffer[m][63]=PORTA; //Buffer[m][n+63]=PORTA; Buffer[m][64]=PORTA; Buffer[m][n+64]=PORTA; Buffer[m][65]=PORTA; Buffer[m][n+65]=PORTA; Buffer[m][66]=PORTA; Buffer[m][n+66]=PORTA; Buffer[m][67]=PORTA; //Buffer[m][n+67]=PORTA; Buffer[m][68]=PORTA; Buffer[m][n+68]=PORTA; Buffer[m][69]=PORTA; Buffer[m][n+69]=PORTA; m++; } Image_Binaryzation(m); } /************************************************** ** 函数名称: 中断处理函数 ** 功能描述: 场中断处理函数 ** 输 入: 无 ** 输 出: 无 ** 说明: ***************************************************/ #pragma CODE_SEG __NEAR_SEG NON_BANKED void interrupt 9 PT1_Interrupt() { TFLG1_C1F=1; TFLG1_C0F=1; m=0; Line=0; SampleFlag=1; }
本文档为【OV6620摄像头采集程序基于XS128】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_882336
暂无简介~
格式:doc
大小:31KB
软件:Word
页数:11
分类:互联网
上传时间:2017-10-16
浏览量:29