智能车制作
标题:
摄像头采集代码(7620数字摄像头)CW5.0
[打印本页]
作者:
仁者
时间:
2011-2-25 13:01
标题:
摄像头采集代码(7620数字摄像头)CW5.0
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#include <MC9S12XS128.h>
void SCI0_Transmit(void);
void IOC_Contrl(void);
byte Image_data[38][120];
byte Point_C, YSYN_C, Line_Flag, m = 0,n=0;
byte Line_C=0;
unsigned char jiange;
//PLL初始化
void PLL_INC(void)
{
CLKSEL=0x00; //48mhz
SYNR=0XC0 | 0X05;
REFDV=0XC0 | 0X03;
PLLCTL_PLLON=1;
POSTDIV=0X00;
asm(nop);
asm(nop);
while(0==CRGFLG_LOCK); //锁相环锁定
CLKSEL_PLLSEL=1; //选定PLL时钟
}
/*-------串口初始化----------------------*/
void SCI0_Init()
{
SCI0BDL = (byte)((48000000 /* OSC freq *//2) / 57600 /* baud rate */ / 16 /*factor*/);
SCI0CR1 = 0X00; /*normal,no parity*/
SCI0CR2 = 0X0C; /*RIE=1,TE=1,RE=1, */
}
//输入捕捉初始化
void IOC_Init(void)
{
TIOS =0x00;//定时器通道0,1 为输入捕捉
TSCR1=0x80;//定时器使能
TCTL4=0x09;//通道0 捕捉上升沿通道1 捕捉下降沿
TIE=0x03; //通道0,1 中断使能
TFLG1=0xFF;//清中断标志位
}
//中断定义
#pragma CODE_SEG NON_BANKED
//IC1通道中断 场中断
interrupt 9 void VSYN_Interrupt(void)
{
TFLG1_C1F = 1; //清场中断
TFLG1_C0F = 1; //清行中断
Point_C = 0;
Line_C = 0; //行计数器
YSYN_C++;
SCI0DRL = 0X0A; //回车
while (!(SCI0SR1&0x80));
SCI0DRL = 0X0D;
while (!(SCI0SR1&0x80));
}
//IC0通道中断 行中断
interrupt 8 void HREF_Count(void)
{
TFLG1_C0F = 1;
Line_Flag = 0;
m++;
if ( m<12 || m>288 )
{
return;//判断是否从新的一场开始
}
if(m<=132)jiange=12;
else if(m>132&&m<=200) jiange=8;
else if(m>200&&m<=248) jiange=6;
else jiange=4;
if(m%jiange==0)
{
IOC_Contrl();
SCI0_Transmit();
Line_C++;
}
}
#pragma CODE_SEG DEFAULT
/*-------发射端程序----------------------*/
void SCI0_Transmit()
{
byte i, temp;
temp = SCI0SR1; //清零
SCI0DRH = 0;
for(i = 0;i < 119 ;i++)
{
if(Image_data[Line_C][i]>30 & Image_data[Line_C][i+1]>30)
SCI0DRL = 0x30;
else SCI0DRL = 0X31;
while (!(SCI0SR1&0x80)); /* wait for output buffer empty */
}
SCI0DRL = 0X0A; //回车
while (!(SCI0SR1&0x80));
SCI0DRL = 0X0D; //换行
while (!(SCI0SR1&0x80));
}
//计数控制
void IOC_Contrl(void)
{
//TIE = 0X00;
Image_data[Line_C][0] = PORTA;
Image_data[Line_C][1] = PORTA;
Image_data[Line_C][2] = PORTA;
Image_data[Line_C][3] = PORTA;
Image_data[Line_C][4] = PORTA;
Image_data[Line_C][5] = PORTA;
Image_data[Line_C][6] = PORTA;
Image_data[Line_C][7] = PORTA;
Image_data[Line_C][8] = PORTA;
Image_data[Line_C][9] = PORTA;
Image_data[Line_C][10] = PORTA;
Image_data[Line_C][11] = PORTA;
Image_data[Line_C][12] = PORTA;
Image_data[Line_C][13] = PORTA;
Image_data[Line_C][14] = PORTA;
Image_data[Line_C][15] = PORTA;
Image_data[Line_C][16] = PORTA;
Image_data[Line_C][17] = PORTA;
Image_data[Line_C][18] = PORTA;
Image_data[Line_C][19] = PORTA;
Image_data[Line_C][20] = PORTA;
Image_data[Line_C][21] = PORTA;
Image_data[Line_C][22] = PORTA;
Image_data[Line_C][23] = PORTA;
Image_data[Line_C][24] = PORTA;
Image_data[Line_C][25] = PORTA;
Image_data[Line_C][26] = PORTA;
Image_data[Line_C][27] = PORTA;
Image_data[Line_C][28] = PORTA;
Image_data[Line_C][29] = PORTA;
Image_data[Line_C][30] = PORTA;
Image_data[Line_C][31] = PORTA;
Image_data[Line_C][32] = PORTA;
Image_data[Line_C][33] = PORTA;
Image_data[Line_C][34] = PORTA;
Image_data[Line_C][35] = PORTA;
Image_data[Line_C][36] = PORTA;
Image_data[Line_C][37] = PORTA;
Image_data[Line_C][38] = PORTA;
Image_data[Line_C][39] = PORTA;
Image_data[Line_C][40] = PORTA;
Image_data[Line_C][41] = PORTA;
Image_data[Line_C][42] = PORTA;
Image_data[Line_C][43] = PORTA;
Image_data[Line_C][44] = PORTA;
Image_data[Line_C][45] = PORTA;
Image_data[Line_C][46] = PORTA;
Image_data[Line_C][47] = PORTA;
Image_data[Line_C][48] = PORTA;
Image_data[Line_C][49] = PORTA;
Image_data[Line_C][50] = PORTA;
Image_data[Line_C][51] = PORTA;
Image_data[Line_C][52] = PORTA;
Image_data[Line_C][53] = PORTA;
Image_data[Line_C][54] = PORTA;
Image_data[Line_C][55] = PORTA;
Image_data[Line_C][56] = PORTA;
Image_data[Line_C][57] = PORTA;
Image_data[Line_C][58] = PORTA;
Image_data[Line_C][59] = PORTA;
Image_data[Line_C][60] = PORTA;
Image_data[Line_C][61] = PORTA;
Image_data[Line_C][62] = PORTA;
Image_data[Line_C][63] = PORTA;
Image_data[Line_C][64] = PORTA;
Image_data[Line_C][65] = PORTA;
Image_data[Line_C][66] = PORTA;
Image_data[Line_C][67] = PORTA;
Image_data[Line_C][68] = PORTA;
Image_data[Line_C][69] = PORTA;
Image_data[Line_C][70] = PORTA;
Image_data[Line_C][71] = PORTA;
Image_data[Line_C][72] = PORTA;
Image_data[Line_C][73] = PORTA;
Image_data[Line_C][74] = PORTA;
Image_data[Line_C][75] = PORTA;
Image_data[Line_C][76] = PORTA;
Image_data[Line_C][77] = PORTA;
Image_data[Line_C][78] = PORTA;
Image_data[Line_C][79] = PORTA;
Image_data[Line_C][80] = PORTA;
Image_data[Line_C][81] = PORTA;
Image_data[Line_C][82] = PORTA;
Image_data[Line_C][83] = PORTA;
Image_data[Line_C][84] = PORTA;
Image_data[Line_C][85] = PORTA;
Image_data[Line_C][86] = PORTA;
Image_data[Line_C][87] = PORTA;
Image_data[Line_C][88] = PORTA;
Image_data[Line_C][89] = PORTA;
Image_data[Line_C][90] = PORTA;
Image_data[Line_C][91] = PORTA;
Image_data[Line_C][92] = PORTA;
Image_data[Line_C][93] = PORTA;
Image_data[Line_C][94] = PORTA;
Image_data[Line_C][95] = PORTA;
Image_data[Line_C][96] = PORTA;
Image_data[Line_C][97] = PORTA;
Image_data[Line_C][98] = PORTA;
Image_data[Line_C][99] = PORTA;
Image_data[Line_C][100] = PORTA;
Image_data[Line_C][101] = PORTA;
Image_data[Line_C][102] = PORTA;
Image_data[Line_C][103] = PORTA;
Image_data[Line_C][104] = PORTA;
Image_data[Line_C][105] = PORTA;
Image_data[Line_C][106] = PORTA;
Image_data[Line_C][107] = PORTA;
Image_data[Line_C][108] = PORTA;
Image_data[Line_C][109] = PORTA;
Image_data[Line_C][110] = PORTA;
Image_data[Line_C][111] = PORTA;
Image_data[Line_C][112] = PORTA;
Image_data[Line_C][113] = PORTA;
Image_data[Line_C][114] = PORTA;
Image_data[Line_C][115] = PORTA;
Image_data[Line_C][116] = PORTA;
Image_data[Line_C][117] = PORTA;
Image_data[Line_C][118] = PORTA;
Image_data[Line_C][119] = PORTA;
// TIE = 0X03;
}
void main(void)
{
/* put your own code here */
DisableInterrupts;
//DDRA = 0X00;
PLL_INC();
SCI0_Init();
IOC_Init();
EnableInterrupts;
for(;;)
{
_FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
复制代码
作者:
近水楼台
时间:
2011-2-26 01:00
沙发……
作者:
luximing
时间:
2011-2-26 09:08
作者:
lddzzhengfeng
时间:
2011-2-26 10:36
不错,谢了哈
作者:
仁者
时间:
2011-2-26 11:18
回复
4#
lddzzhengfeng
客气,呵呵
作者:
dxyd2011
时间:
2011-2-27 00:57
谢谢分享
作者:
a7335562
时间:
2011-3-2 16:58
参考参参
作者:
billjane
时间:
2011-3-4 10:34
多谢多谢
作者:
xiaotong0202
时间:
2011-3-4 12:50
谢了哈
作者:
120730409
时间:
2011-3-16 14:26
谢
作者:
zhangtao0210
时间:
2011-3-17 19:42
嘿嘿,想要个流程图
作者:
李威小威
时间:
2011-3-18 11:24
XX
作者:
woshi110
时间:
2011-3-21 00:20
Image_data[Line_C][i]>30 & Image_data[Line_C][i+1]>30 是什么意思?????
作者:
hls
时间:
2011-3-23 18:19
谢谢啊 嘿嘿
作者:
wengyouzhi
时间:
2011-3-24 17:45
顶啊
作者:
liangliheng
时间:
2011-4-27 10:56
good
作者:
liangliheng
时间:
2011-4-27 12:58
太漂亮了
作者:
weic
时间:
2011-4-28 11:17
thank you
作者:
vgjkl
时间:
2011-5-1 18:27
作者:
CjackL
时间:
2011-5-8 20:01
多谢了
作者:
wanglichao
时间:
2011-5-10 13:41
采集图像的方法基本没问题,但是采样不均匀,或者像素很低
作者:
1013757298
时间:
2011-5-10 19:23
作者:
laoniuxxj
时间:
2011-5-14 19:10
赞
作者:
萧国皇藏峪
时间:
2011-6-10 14:10
顶一个!
作者:
一个人喝
时间:
2011-6-10 16:58
定格
作者:
cjinxing
时间:
2011-6-10 18:01
这是根据哪个上位机软件写的呢?可不可以发上来
作者:
az8898
时间:
2011-6-18 13:32
作者:
jayce
时间:
2011-10-15 14:14
很不错~学习
作者:
wangbotao1990
时间:
2011-10-19 20:57
参考参考
作者:
凌.蓝点儿
时间:
2011-10-29 20:13
谢谢分享·······
作者:
369185748
时间:
2012-1-10 18:22
看看
作者:
532327593
时间:
2012-1-11 10:43
好好
作者:
x_yang1989723
时间:
2012-1-13 09:54
学习
作者:
阿申
时间:
2012-1-13 15:43
作者:
x_yang1989723
时间:
2012-2-9 14:02
不会,学习楼主
作者:
(⊙o⊙)哦
时间:
2012-2-27 22:26
你的摄像头是用的OV7620不?或者是OV7620+FIFO?求交流
作者:
xiayayun
时间:
2012-2-27 22:39
作者:
keyi011
时间:
2012-2-29 20:07
作者:
小木偶
时间:
2012-3-2 16:09
果然大侠,学习了
作者:
广陵F3
时间:
2012-4-27 13:45
作者:
小木偶
时间:
2012-5-9 15:52
多谢
作者:
a910200850
时间:
2012-6-13 13:52
作者:
吱吱
时间:
2012-7-2 11:20
作者:
binaries
时间:
2012-7-18 19:46
先记下了啊
作者:
binaries
时间:
2012-7-18 19:47
感谢感谢
作者:
蓝湖映天
时间:
2012-7-18 22:20
谢谢!
作者:
飞思卡尔。。
时间:
2013-1-18 11:57
:)
作者:
793810734@qq.om
时间:
2013-4-4 18:15
BYTE?
作者:
天空之城-
时间:
2013-4-10 22:47
作者:
serial
时间:
2017-4-13 17:45
lz 能给一份完整代码吗
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2