智能车制作

标题: XS128摄像头采集程序,调试一个月了 [打印本页]

作者: wudiche    时间: 2010-5-26 20:47
标题: XS128摄像头采集程序,调试一个月了
请问有没有XS128的采集程序。单单采集就可以了。。我采集的程序经常出现中间一条横线,赛道可以判断,就是常常会出现一条全是1的线,我0是白线,1是黑线。经过LM1881分离后。有的同胞可以发一份吗?小弟感激不尽。调了一个月了。要崩溃了。。。
作者: jiutian0396    时间: 2010-5-27 08:15
帮你顶一下吧
作者: raolei0721    时间: 2010-6-8 11:23
嗯,7620采集数据,经 a口送进来,发现送进来的数据有许多是16,这个数据是无用的,二值化之后认为为黑点,要命的是这样的干扰有很多,怎么办???
作者: crj19880917    时间: 2010-7-1 19:05
等高手‘
作者: librae8226    时间: 2010-7-1 21:09

  1. void interrupt 8 Port0_interrupt(void) // HS interrupt
  2. {
  3.     static unsigned int i;

  4.     TFLG1 = 0x01; // Clear HS flag
  5.     if( g_SampleFlag == 0 )
  6.     {
  7.         return;
  8.     }
  9.     row_counter++;

  10.     if( row_counter % SAMPLE_INTERVAL == 0 )
  11.     {                                                                                                         
  12.         app = &buff[row][0];
  13.         row++;
  14.         if( row_counter > 200 )
  15.         {
  16.             g_SampleFlag = 0;
  17.             TIE_C0I = 0;
  18.             flag = 1;
  19.             return; //test
  20.         }
  21.             
  22.         for( i = 0; i < COLUMN_VALUE; i++ )
  23.         {
  24.             _asm(nop);_asm(nop);_asm(nop);
  25.             _asm(nop);_asm(nop);_asm(nop);
  26.             _asm(nop);_asm(nop);_asm(nop);
  27.             _asm(nop);_asm(nop);_asm(nop);
  28.             _asm(nop);_asm(nop);_asm(nop);
  29.             _asm(nop);_asm(nop);_asm(nop);
  30.             //_asm(nop);_asm(nop);_asm(nop);
  31.             //_asm(nop);_asm(nop);_asm(nop);
  32.             //for 80Mhz
  33.             *app++ = PORTB;
  34.         }
  35.     }
  36. }
  37.          
  38. void interrupt 9 Port1_interrupt(void) //FODD interrupt
  39. {
  40.     TFLG1 = 0x02; //Clear FODD flag
  41.     g_SampleFlag = 1;
  42.     TIE_C0I = 1;
  43.     row = 0; //Reset row
  44.     row_counter = 0;
  45.     get_lost_time = 0; //Reset get_lost_time
  46.     SAMPLE_INTERVAL = 5;
  47.     PORTA_PA7 = !PORTA_PA7;
  48. }
复制代码

作者: librae8226    时间: 2010-7-1 21:10
这是我们的程序,OV7620的
作者: librae8226    时间: 2010-7-1 21:12
这是模拟摄像头用片内AD采的,只采了15*35

  1. #pragma CODE_SEG __NEAR_SEG NON_BANKED
  2. //Interrupt Functions

  3. void interrupt 8 Port0_interrupt(void) // HS interrupt
  4. {
  5.     unsigned int i;

  6.     TFLG1_C0F = 1; // Clear HS interrupt flag
  7.     rowcounter++;
  8.    
  9.     if( vStartFalg ) // Avoid VS blanking
  10.     {
  11.         if ( SampleRow++ <= 10 )
  12.         {
  13.                 return;                           
  14.         }
  15.     }
  16.     vStartFalg = 0;
  17.     if( rowcounter % ROW_INTERVAL == 0)
  18.     {
  19.         for( i = 0; i < 100; i++) // Avoid HS blanking(35~75)
  20.         {
  21.             asm(nop);
  22.         }
  23.         TIE_C0I = 0; // Disable HS interrupt

  24.         for( column = 0; column < BUFF_COLUMN_MAX; column++ )
  25.         {
  26.             while(!ATD0STAT0_SCF);
  27.             buff[row][column] = ATD0DR0L;
  28.         }
  29.         row++;
  30.         
  31.         TIE_C0I = 1;
  32.         
  33.         //TIE_C0I = 0; // Disable HS interrupt,just sample one row.
  34.         
  35.         if( row > BUFF_ROW_MAX )
  36.         {
  37.             TIE_C0I = 0;
  38.             TIE_C1I = 1;
  39.         }
  40.     }
  41. }

  42. void interrupt 9 Port1_interrupt(void) //VS interrupt
  43. {
  44.     TIE_C0I = 0; // Disable HS interrupt
  45.     TIE_C1I = 0;
  46.     TFLG1_C1F = 1; // Clear VS interrupt flag
  47.     /**************************************
  48.     *              Send Image             *
  49.     **************************************/
  50.     for( SCIrow = 0; SCIrow < BUFF_ROW_MAX; SCIrow++ )
  51.     {
  52.         for( SCIcolumn = 0; SCIcolumn < BUFF_COLUMN_MAX; SCIcolumn++ )
  53.         {
  54.             if(buff[SCIrow][SCIcolumn] > threshold)
  55.                 SCI_Transmit('1');
  56.             else
  57.                 SCI_Transmit('0');
  58.             delayms(50);
  59.         }
  60.         SCI_Transmit('\n');
  61.     }
  62.     SCI_Transmit('\n');
  63.     PORTB_PB7 = !PORTB_PB7;
  64.     /**************************************
  65.     *            End of Sending           *
  66.     **************************************/
  67.    
  68.     delayms(2);
  69.     SampleRow = 0;
  70.     vStartFalg = 1;
  71.     row = 0;  // Reinitialize
  72.     rowcounter = 0;

  73.     //TIE_C1I = 1; // Enable VS interrupt
  74.     TIE_C0I = 1; // Enable HS interrupt        
  75. }   
复制代码

作者: robotong    时间: 2010-7-4 14:34
谢谢
作者: yijingjing    时间: 2010-11-3 18:41
kankan
作者: yuyue    时间: 2010-11-7 10:41
来学习!
作者: 夜月星寂    时间: 2011-5-27 10:07
感谢
作者: jiningxueyuan    时间: 2011-5-28 00:25

作者: 吴铭鸿    时间: 2011-8-6 02:49
不错哈》》》
作者: 宁静致远    时间: 2011-9-6 11:01
路过宝地
作者: skywolf    时间: 2011-9-6 12:38
学习了
作者: brucelee    时间: 2011-9-6 20:40
不顶不行
作者: lifei092    时间: 2012-3-14 17:59
请问一下,二值化的时候灰度值越大是不是越白。。。。。
作者: zhangxing    时间: 2012-3-20 09:39
librae8226 发表于 2010-7-1 21:10
这是我们的程序,OV7620的

ov7620不是数字摄像头吗?还用AD?


作者: hufeng    时间: 2012-7-8 16:21

作者: zfc    时间: 2012-7-26 08:26
librae8226 发表于 2010-7-1 21:09

请教一下~你们列的采集时间间隔是怎么样确定的
Non机器时间周期的数目是怎么样确定的,
是采集一场后用SCI写出来在串口上看
还是在其他调试软件上看了后,进行调整的嘛?
有好用一点的调试软件介绍下吗?。

作者: 铁血    时间: 2012-11-25 10:29
librae8226 发表于 2010-7-1 21:09

请问你这个存数据的数组,定义多大啊!而且你在采数据的时候,用延时来实现效果好么?
作者: 暗光    时间: 2015-4-27 18:14
顶顶顶




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