基于飞思卡尔图像采集.docx

上传人:b****2 文档编号:1006139 上传时间:2022-10-15 格式:DOCX 页数:13 大小:16.43KB
下载 相关 举报
基于飞思卡尔图像采集.docx_第1页
第1页 / 共13页
基于飞思卡尔图像采集.docx_第2页
第2页 / 共13页
基于飞思卡尔图像采集.docx_第3页
第3页 / 共13页
基于飞思卡尔图像采集.docx_第4页
第4页 / 共13页
基于飞思卡尔图像采集.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于飞思卡尔图像采集.docx

《基于飞思卡尔图像采集.docx》由会员分享,可在线阅读,更多相关《基于飞思卡尔图像采集.docx(13页珍藏版)》请在冰豆网上搜索。

基于飞思卡尔图像采集.docx

基于飞思卡尔图像采集

附录C:

程序原代码

#include/*commondefinesandmacros*/

#include/*derivativeinformation*/

#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"

#definehsTFLG1_C0F

#defineclr_hsTFLG1_C0F

#definevideoATD0DR0

#defineodd_evenPTIS_PTIS2

/********************************************************\

DeclarationofValuebales

\********************************************************/

//CCDvariables//

#definer_max40

#definel_max40

charccd_d[r_max+2][l_max];

charccd[l_max];

charr_chg;

charrow;

charline;

charinterval=7;

charoeflag=0;

chary_up[r_max+2];

chartemp_up[r_max+2];

#definelatch20

#definelatch_neg-20

charw_flg[r_max+2];

intdif;

//-------------//

//SCIvariables//

charsci_d;

//-------------//

//PWMvariables//

#definemid_P20

intctl;

第VI页

第十一章总结

interr[r_max+2];

unsignedcharm_speed;

intstr;

intturn;

unsignedcharpulse[6];

unsignedcharspeed;

unsignedcharturn_S;

unsignedcharstr_S;

//-------------//

//generalvariables//

charx,y,z;

//-----------------//

/********************************************************\

DeclarationofFunctions

\********************************************************/

//overallinitiation

voidini_orall(void){

DDRS_DDRS2=0;

DDRS_DDRS7=1;

TIOS_IOS0=0;

TIOS_IOS1=0;

TCTL4=0b00001101;

TSCR1_TEN=1;

ICPAR_PA1EN=1;

DDRH=0xff;

}

//initiatebusclock

voidini_PLL(void){

REFDV=3;

SYNR=7;

while(0==CRGFLG_LOCK);

CLKSEL=0x80;

VII

第页

}

/****SCI****/

//initiateSCI

voidini_SCI(void){

SCI0BD=208;

SCI0CR1=0x00;

SCI0CR2=0x0C;

}

//SCIreceive

voidre_sci(void){

while(SCI0SR1_RDRF!

=1);

sci_d=SCI0DRL;

}

//SCItransmit

voidtx_sci(chartx_d){

while(SCI0SR1_TC!

=1);

while(SCI0SR1_TDRE!

=1);

SCI0DRL=tx_d;

}

/***********/

/****PWM****/

//PWM&33886initialization

voidini_PWM(void){

PTS_PTS7=0;

PWME=0x00;

PWMCTL_CON01=1;

PWMPRCLK=0x33;

PWMSCLA=100;

PWMSCLB=1;

PWMCLK=0b00011100;

PWMPOL=0xff;

PWMCAE=0x00;

PWMPER0=0x4e;

第VIII页

第十一章总结

PWMPER1=0x20;

PWMDTY0=0x18;

PWMDTY1=0x38;

PWME_PWME1=1;

PWMDTY2=120;

PWMPER2=200;

PWME_PWME2=1;

}

//Settheangleofsteer

voidpwm_set(intdutycycle)

{

inthigh8;

high8=dutycycle&0xFF00;

PWMDTY0=high8>>8;

PWMDTY1=dutycycle&0x00FF;

}

/*************/

/****SPEED****/

//InitiatetheAveragespeed

voidspeed_init(void){

DDRM_DDRM0=0;

DDRM_DDRM1=0;

DDRM_DDRM2=0;

DDRM_DDRM3=0;

DDRM_DDRM4=0;

DDRM_DDRM5=0;

DDRJ_DDRJ6=0;

DDRJ_DDRJ7=0;

if(1==PTIM_PTIM0){

m_speed=120+

2*(PTIM_PTIM1*10+PTIM_PTIM2*5+PTIM_PTIM3*2+PTIM_PTIM4*2+PTIM

_PTIM5+PTIJ_PTIJ6+PTIJ_PTIJ7);

}else{

m_speed=120-

2*(PTIM_PTIM1*10+PTIM_PTIM2*5+PTIM_PTIM3*2+PTIM_PTIM4*2+PTIM

_PTIM5+PTIJ_PTIJ6+PTIJ_PTIJ7);

IX

第页

}

PWMDTY2=m_speed;

str_S=m_speed/2-10;

}

//Getthecurrentspeed

voidget_speed(){

chark;

for(k=0;k<5;k++){

pulse[k]=pulse[k+1];

}

pulse[5]=PACN1;

speed=pulse[5]-pulse[0];

}

//Setthecurrentspeed

voidset_speed(unsignedchara){

if(speed

PWMDTY2=200;

}

if(speed>a){

PWMDTY2=0;

}

}

/*************/

/****CONTROL****/

voidvhcl_pid(void){

get_speed();

if(err[8]>0){

ctl=6250+42*err[8];

}else{

ctl=6250+38*err[8];

}

//------------------------

dif=err[2]+err[10]-2*err[6];

if((dif>-7)&&(dif<7)&&(err[6]>-15)&&(err[6]<15)){

str++;

第X页

第十一章总结

turn=0;

PTH=0xff;

}else{

turn++;

if(turn>20){

str=0;

}

PTH=0x00;

}

//------------------------

if(turn>0){

set_speed(29);

}else{

set_speed(str_S);

}

//-----------------------------

if(ctl<5200)ctl=5200;

if(ctl>7400)ctl=7400;

pwm_set(ctl);

if(1==odd_even)oeflag=1;

if(0==odd_even)oeflag=0;

}

/***********/

/****CCD****/

//InitiateA/Dregisters

voidini_AD(void)

{

ATD0CTL2=0xC0;

ATD0CTL3=0x08;

ATD0CTL4=0x81;

ATD0CTL5=0xA0;

ATD0DIEN=0x00;

}

XI

第页

//ScantheCCDimage

voidccd_sc(void){

r_chg=0;

while(r_chg<26-interval){

if(1==hs){

clr_hs=1;

r_chg++;

}

}

line=0;

r_chg=0;

for(row=1;row<=r_max;){

if(1==hs){

clr_hs=1;

r_chg++;

}

if(r_chg>=interval){

ini_AD();

for(line=0;line

while(!

ATD0STAT1_CCF0);

ccd[line]=video;

}

line=6;

row++;

w_flg[row-1]=0;

r_chg=0;

ATD0CTL2=0x00;

}

if((r_chg

ccd_d[row-1][line]=ccd[line];

dif=ccd[line]-ccd[line+3];

if(0==w_flg[row-1]){

if(dif>latch){

temp_up[row-1]=line+3;

w_flg[row-1]=1;

}

}else{

第XII页

第十一章总结

if(dif

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1