亿加合和智能车制作

标题: K60的CCD程序移植到STM32上只有0和FF [打印本页]

作者: mrzhaoly    时间: 2016-9-13 08:33
标题: K60的CCD程序移植到STM32上只有0和FF
图片为用蓝宙的上位机显示数据。下面附上主要程序,程序也是蓝宙的STM32程序,麻烦大家帮忙看一下 谢谢~(CCD没坏,用K60的程序显示正常)
  1. int main(void)
  2. {         
  3.         u8 i;
  4.         u8 send_data_cnt = 0;
  5.         u8 *pixel_pt;  
  6.         delay_init();                     //Ñóê±oˉêy3õê¼»ˉ          
  7.         NVIC_Configuration();          //éèÖÃNVICÖD¶Ï·Ö×é2:2λÇàÕ¼óÅÏ輶£¬2λÏìó|óÅÏ輶
  8.         uart_init(115200);                 //′®¿ú3õê¼»ˉÎa9600
  9.         LED_Init();                             //LED¶Ë¿ú3õê¼»ˉ
  10.         TIM3_Int_Init(4999,55);//10KhzμļÆêyÆμÂ꣬¼Æêyμ½5000Îa5ms  
  11.         LandzoCCD_init(); // CCD3õê¼»ˉ
  12.         pixel_pt = Pixel;
  13.         for(i=0; i<128+10; i++)
  14.         {
  15.          *pixel_pt++ = 0;
  16.         }        
  17.         while(1)
  18.         {
  19.      if(TIME0flag_5ms == 1)
  20.       {
  21.           TIME0flag_5ms = 0 ;
  22.           ImageCapture(Pixel);        //CCD2éÑù  Sampling CCD data
  23.           if(++send_data_cnt >= 5)    //′®¿ú·¢Ëíêy¾Y  Send data to CCDView every 100ms
  24.           {
  25.               send_data_cnt = 0;
  26.               SendImageData(Pixel);
  27.           }
  28.       }
  29.           LED0 = ~LED0;
  30.         }
复制代码
  1. void ImageCapture(uint8_t * ImageData) {
  2.     uint8_t i;
  3.     extern uint8_t AtemP ;

  4.     SI_SetVal();            /* SI  = 1 */
  5.     delay_us(20);
  6.     CLK_SetVal();           /* CLK = 1 */
  7.         delay_us(20);
  8.     SI_ClrVal();            /* SI  = 0 */
  9.     delay_us(30);
  10. //Delay 10us for sample the first pixel
  11.     for(i = 0; i < 200; i++) {                    //¸ü¸Ä250£¬èÃCCDμÄí¼Ïñ¿′éÏ襱è½Ïƽ»¬£¬
  12.       SamplingDelay();  //200ns                  //°Ñ¸ÃÖμ¸Ä′ó»òÕ߸ÄD¡′ïμ½×Ô¼oÂúòaμĽá1û¡£
  13.     }
  14. //Sampling Pixel 1

  15.     *ImageData =  Get_Adc(ADC_Channel_1)>>4;
  16.     ImageData ++ ;
  17.     CLK_ClrVal();           /* CLK = 0 */

  18.     for(i=0; i<127; i++) {
  19.         delay_us(30);
  20.         CLK_SetVal();       /* CLK = 1 */
  21.         delay_us(30);
  22.         //Sampling Pixel 2~128
  23.        *ImageData =  Get_Adc(ADC_Channel_1)>>4;         
  24.         ImageData ++ ;
  25.         CLK_ClrVal();       /* CLK = 0 */
  26.     }
  27.     delay_us(30);
  28.     CLK_SetVal();           /* CLK = 1 */
  29.         delay_us(30);
  30.     CLK_ClrVal();           /* CLK = 0 */
复制代码


作者: mrzhaoly    时间: 2016-9-13 08:34
直接从KEIL上COPY的代码注释有乱码 。。。看起来稍微乱一点
作者: mrzhaoly    时间: 2016-9-13 09:17
这张图片是同样的传感器在K60运行蓝宙例程的效果





欢迎光临 亿加合和智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2