智能车制作

标题: 摄像头采集代码(7620数字摄像头)CW5.0 [打印本页]

作者: 仁者    时间: 2011-2-25 13:01
标题: 摄像头采集代码(7620数字摄像头)CW5.0
  1. #include <hidef.h> /* common defines and macros */
  2. #include "derivative.h" /* derivative-specific definitions */
  3. #include <MC9S12XS128.h>

  4. void SCI0_Transmit(void);
  5. void IOC_Contrl(void);

  6. byte Image_data[38][120];
  7. byte Point_C, YSYN_C, Line_Flag, m = 0,n=0;
  8. byte Line_C=0;
  9. unsigned char jiange;

  10. //PLL初始化
  11. void PLL_INC(void)
  12. {
  13. CLKSEL=0x00; //48mhz
  14. SYNR=0XC0 | 0X05;
  15. REFDV=0XC0 | 0X03;
  16. PLLCTL_PLLON=1;
  17. POSTDIV=0X00;
  18. asm(nop);
  19. asm(nop);
  20. while(0==CRGFLG_LOCK); //锁相环锁定
  21. CLKSEL_PLLSEL=1; //选定PLL时钟
  22. }

  23. /*-------串口初始化----------------------*/
  24. void SCI0_Init()
  25. {
  26. SCI0BDL = (byte)((48000000 /* OSC freq *//2) / 57600 /* baud rate */ / 16 /*factor*/);
  27. SCI0CR1 = 0X00; /*normal,no parity*/
  28. SCI0CR2 = 0X0C; /*RIE=1,TE=1,RE=1, */
  29. }

  30. //输入捕捉初始化
  31. void IOC_Init(void)
  32. {
  33. TIOS =0x00;//定时器通道0,1 为输入捕捉
  34. TSCR1=0x80;//定时器使能
  35. TCTL4=0x09;//通道0 捕捉上升沿通道1 捕捉下降沿
  36. TIE=0x03; //通道0,1 中断使能
  37. TFLG1=0xFF;//清中断标志位
  38. }

  39. //中断定义
  40. #pragma CODE_SEG NON_BANKED

  41. //IC1通道中断 场中断
  42. interrupt 9 void VSYN_Interrupt(void)
  43. {
  44. TFLG1_C1F = 1; //清场中断
  45. TFLG1_C0F = 1; //清行中断
  46. Point_C = 0;
  47. Line_C = 0; //行计数器
  48. YSYN_C++;
  49. SCI0DRL = 0X0A; //回车
  50. while (!(SCI0SR1&0x80));
  51. SCI0DRL = 0X0D;
  52. while (!(SCI0SR1&0x80));
  53. }

  54. //IC0通道中断 行中断
  55. interrupt 8 void HREF_Count(void)
  56. {
  57. TFLG1_C0F = 1;
  58. Line_Flag = 0;
  59. m++;
  60. if ( m<12 || m>288 )
  61. {
  62. return;//判断是否从新的一场开始
  63. }
  64. if(m<=132)jiange=12;
  65. else if(m>132&&m<=200) jiange=8;
  66. else if(m>200&&m<=248) jiange=6;
  67. else jiange=4;
  68. if(m%jiange==0)

  69. {
  70. IOC_Contrl();
  71. SCI0_Transmit();

  72. Line_C++;
  73. }
  74. }

  75. #pragma CODE_SEG DEFAULT

  76. /*-------发射端程序----------------------*/
  77. void SCI0_Transmit()
  78. {
  79. byte i, temp;
  80. temp = SCI0SR1; //清零
  81. SCI0DRH = 0;
  82. for(i = 0;i < 119 ;i++)
  83. {
  84. if(Image_data[Line_C][i]>30 & Image_data[Line_C][i+1]>30)
  85. SCI0DRL = 0x30;
  86. else SCI0DRL = 0X31;

  87. while (!(SCI0SR1&0x80)); /* wait for output buffer empty */
  88. }
  89. SCI0DRL = 0X0A; //回车
  90. while (!(SCI0SR1&0x80));
  91. SCI0DRL = 0X0D; //换行
  92. while (!(SCI0SR1&0x80));
  93. }

  94. //计数控制
  95. void IOC_Contrl(void)
  96. {
  97. //TIE = 0X00;
  98. Image_data[Line_C][0] = PORTA;
  99. Image_data[Line_C][1] = PORTA;
  100. Image_data[Line_C][2] = PORTA;
  101. Image_data[Line_C][3] = PORTA;
  102. Image_data[Line_C][4] = PORTA;
  103. Image_data[Line_C][5] = PORTA;
  104. Image_data[Line_C][6] = PORTA;
  105. Image_data[Line_C][7] = PORTA;
  106. Image_data[Line_C][8] = PORTA;
  107. Image_data[Line_C][9] = PORTA;
  108. Image_data[Line_C][10] = PORTA;
  109. Image_data[Line_C][11] = PORTA;
  110. Image_data[Line_C][12] = PORTA;
  111. Image_data[Line_C][13] = PORTA;
  112. Image_data[Line_C][14] = PORTA;
  113. Image_data[Line_C][15] = PORTA;
  114. Image_data[Line_C][16] = PORTA;
  115. Image_data[Line_C][17] = PORTA;
  116. Image_data[Line_C][18] = PORTA;
  117. Image_data[Line_C][19] = PORTA;
  118. Image_data[Line_C][20] = PORTA;
  119. Image_data[Line_C][21] = PORTA;
  120. Image_data[Line_C][22] = PORTA;
  121. Image_data[Line_C][23] = PORTA;
  122. Image_data[Line_C][24] = PORTA;
  123. Image_data[Line_C][25] = PORTA;
  124. Image_data[Line_C][26] = PORTA;
  125. Image_data[Line_C][27] = PORTA;
  126. Image_data[Line_C][28] = PORTA;
  127. Image_data[Line_C][29] = PORTA;
  128. Image_data[Line_C][30] = PORTA;
  129. Image_data[Line_C][31] = PORTA;
  130. Image_data[Line_C][32] = PORTA;
  131. Image_data[Line_C][33] = PORTA;
  132. Image_data[Line_C][34] = PORTA;
  133. Image_data[Line_C][35] = PORTA;
  134. Image_data[Line_C][36] = PORTA;
  135. Image_data[Line_C][37] = PORTA;
  136. Image_data[Line_C][38] = PORTA;
  137. Image_data[Line_C][39] = PORTA;
  138. Image_data[Line_C][40] = PORTA;
  139. Image_data[Line_C][41] = PORTA;
  140. Image_data[Line_C][42] = PORTA;
  141. Image_data[Line_C][43] = PORTA;
  142. Image_data[Line_C][44] = PORTA;
  143. Image_data[Line_C][45] = PORTA;
  144. Image_data[Line_C][46] = PORTA;
  145. Image_data[Line_C][47] = PORTA;
  146. Image_data[Line_C][48] = PORTA;
  147. Image_data[Line_C][49] = PORTA;
  148. Image_data[Line_C][50] = PORTA;
  149. Image_data[Line_C][51] = PORTA;
  150. Image_data[Line_C][52] = PORTA;
  151. Image_data[Line_C][53] = PORTA;
  152. Image_data[Line_C][54] = PORTA;
  153. Image_data[Line_C][55] = PORTA;
  154. Image_data[Line_C][56] = PORTA;
  155. Image_data[Line_C][57] = PORTA;
  156. Image_data[Line_C][58] = PORTA;
  157. Image_data[Line_C][59] = PORTA;
  158. Image_data[Line_C][60] = PORTA;
  159. Image_data[Line_C][61] = PORTA;
  160. Image_data[Line_C][62] = PORTA;
  161. Image_data[Line_C][63] = PORTA;
  162. Image_data[Line_C][64] = PORTA;
  163. Image_data[Line_C][65] = PORTA;
  164. Image_data[Line_C][66] = PORTA;
  165. Image_data[Line_C][67] = PORTA;
  166. Image_data[Line_C][68] = PORTA;
  167. Image_data[Line_C][69] = PORTA;
  168. Image_data[Line_C][70] = PORTA;
  169. Image_data[Line_C][71] = PORTA;
  170. Image_data[Line_C][72] = PORTA;
  171. Image_data[Line_C][73] = PORTA;
  172. Image_data[Line_C][74] = PORTA;
  173. Image_data[Line_C][75] = PORTA;
  174. Image_data[Line_C][76] = PORTA;
  175. Image_data[Line_C][77] = PORTA;
  176. Image_data[Line_C][78] = PORTA;
  177. Image_data[Line_C][79] = PORTA;
  178. Image_data[Line_C][80] = PORTA;
  179. Image_data[Line_C][81] = PORTA;
  180. Image_data[Line_C][82] = PORTA;
  181. Image_data[Line_C][83] = PORTA;
  182. Image_data[Line_C][84] = PORTA;
  183. Image_data[Line_C][85] = PORTA;
  184. Image_data[Line_C][86] = PORTA;
  185. Image_data[Line_C][87] = PORTA;
  186. Image_data[Line_C][88] = PORTA;
  187. Image_data[Line_C][89] = PORTA;
  188. Image_data[Line_C][90] = PORTA;
  189. Image_data[Line_C][91] = PORTA;
  190. Image_data[Line_C][92] = PORTA;
  191. Image_data[Line_C][93] = PORTA;
  192. Image_data[Line_C][94] = PORTA;
  193. Image_data[Line_C][95] = PORTA;
  194. Image_data[Line_C][96] = PORTA;
  195. Image_data[Line_C][97] = PORTA;
  196. Image_data[Line_C][98] = PORTA;
  197. Image_data[Line_C][99] = PORTA;
  198. Image_data[Line_C][100] = PORTA;
  199. Image_data[Line_C][101] = PORTA;
  200. Image_data[Line_C][102] = PORTA;
  201. Image_data[Line_C][103] = PORTA;
  202. Image_data[Line_C][104] = PORTA;
  203. Image_data[Line_C][105] = PORTA;
  204. Image_data[Line_C][106] = PORTA;
  205. Image_data[Line_C][107] = PORTA;
  206. Image_data[Line_C][108] = PORTA;
  207. Image_data[Line_C][109] = PORTA;
  208. Image_data[Line_C][110] = PORTA;
  209. Image_data[Line_C][111] = PORTA;
  210. Image_data[Line_C][112] = PORTA;
  211. Image_data[Line_C][113] = PORTA;
  212. Image_data[Line_C][114] = PORTA;
  213. Image_data[Line_C][115] = PORTA;
  214. Image_data[Line_C][116] = PORTA;
  215. Image_data[Line_C][117] = PORTA;
  216. Image_data[Line_C][118] = PORTA;
  217. Image_data[Line_C][119] = PORTA;
  218. // TIE = 0X03;
  219. }

  220. void main(void)
  221. {
  222. /* put your own code here */

  223. DisableInterrupts;
  224. //DDRA = 0X00;
  225. PLL_INC();

  226. SCI0_Init();

  227. IOC_Init();

  228. EnableInterrupts;
  229. for(;;)
  230. {
  231. _FEED_COP(); /* feeds the dog */
  232. } /* loop forever */
  233. /* please make sure that you never leave main */
  234. }
复制代码

作者: 近水楼台    时间: 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