智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1617|回复: 0
打印 上一主题 下一主题

CCD摄像头程序

[复制链接]

1

主题

5

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
威望
176
贡献
39
兑换币
0
注册时间
2011-1-18
在线时间
0 小时
跳转到指定楼层
1#
发表于 2011-1-18 16:00:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Main.c

#include <hidef.h>           /* common defines and macros */
#include <mc9s12db128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12db128b"
#include "define.h"
#include "init.h"

// variable used in video process
volatile unsigned char image_data[ROW_MAX][LINE_MAX] ;       // data array of picture
unsigned char black_x[ROW_MAX]           ;  // 0ne-dimensional array  
unsigned char row                          ;  // x-position of the array
unsigned char line                          ;  // y-position of the array
unsigned int  row_count                    ;  // row counter
                                                    unsigned char line_sample                   ;  // used to counter in AD
unsigned char row_image                    ;        
unsigned char line_temp                      ;  // temperary variable used in data transfer
unsigned char sample_data[LINE_MAX]  ; // used to save one-dimension array got in
interruption
// variables below are used in speed measure
Unsigned char pulse[5] ;               // used to save data in PA process
Unsigned char counter;                // temporary counter in Speed detect
Unsigned char cur_speed;              // current speed

short stand;               
short data;
unsigned char curve                         ; // valve used to decide straight or turn
short Bounds(short data);
short FuzzyLogic(short stand);
/*----------------------------------------------------------------------------*\
                              receive_sci              
\*----------------------------------------------------------------------------*/
unsigned char receive_sci(void)             // receive data through sci
{ unsigned char sci_data;
  while(SCI0SR1_RDRF!=1);     
  sci_data=SCI0DRL;           
  return sci_data;      
}

/*----------------------------------------------------------------------------*\
                              transmit_sci            
\*----------------------------------------------------------------------------*/
void transmit_sci(unsigned char transmit_data)  // send data through sci
{
  while(SCI0SR1_TC!=1);
  while(SCI0SR1_TDRE!=1);
  SCI0DRL=transmit_data;   
}  
/*****************************************************************************
***/
/*----------------------------------------------------------------------------*\
                              abs_sub           
\*----------------------------------------------------------------------------*/  
unsigned char abs_sub(unsigned char num1, unsigned char num2)
{  unsigned char  difference;
   
   if(num1>=num2){
     difference=num1-num2;
   }else{
     difference=num2-num1;
   }
  return difference;
}

void pwm_set(unsigned int dutycycle)
{  
  PWMDTY1=dutycycle&0x00FF;  
  PWMDTY0=dutycycle>>8;         
}   

void get_black_wire(void)        // used to extract black wire
{ unsigned char i;
  for(row=0;row<ROW_MAX;row++){
    for(line=LINE_MIN;line<LINE_MAX-3;line++){  
     if(image_data[row][line]>image_data[row][line+3]+VALVE){

      for(i=3;i<10;i++){
             if(image_data[row][line+i]+VALVE<image_data[row][line+i+3]){
               black_x[row]=line+i/2+2;
                i=10;
             }
        }
      line=LINE_MAX;
     } else{
        //black_x[row]=(black_x[row]/45)*78;
     }
    }  
  }
}
/*----------------------------------------------------------------------------*\

这是第一届上海交通大学CyberSmart技术报告里面的.
智能车论坛里有很多.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 00:23 , Processed in 0.302743 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表