freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

光電平衡小車設(shè)計_單片機課程設(shè)計-閱讀頁

2024-09-18 18:07本頁面
  

【正文】 oid hardinit(void) //ok { SystemCLK_64M()。 //SCI0初始化 ok ATD_init()。 //電機驅(qū)動初始化 2KHz Time_init_CCD()。 //PAC 初始化 PIT_Init()。 //發(fā)送數(shù)據(jù)起始標(biāo)志位 uchr_ad_data2[0] = 0xff。 //速度控制中的比例控制,用于反饋比例反饋速度差信號//float SPEED_CONTROL_D =53。 //得到脈沖數(shù)char g_chrRightPulse = 0。int g_chrRightPulsesum = 0。 //測定速度float CAR_SPEED_SET = 0。 //比例積分項float g_inSpeedOutNew=0。 //上次的速度控制量float g_inSpeedperiod=0。/*************************************************************** ok____5月4日函數(shù)功能:獲取電機脈沖數(shù)入口參數(shù):無讀取計數(shù)器的值出口參數(shù):無g_inMotorPulse 正反計數(shù)脈沖總數(shù)小于128說明 :********************************************************************/ void GetMotorPulse(void) //1ms { g_chrleftPulse = (char)PORTA。 Leftcounter_S0=0。 //左計數(shù)器清零 g_chrRightPulse = (char)PORTB。 Rightcounter_S1=0。 Leftcounter_S1=1。 Rightcounter_S1=1。 g_chrRightPulsesum= g_chrRightPulsesum + (int)g_chrRightPulse。 //速度差 float P, D。 g_chrleftPulsesum=0。 //g_inCarSpeed = g_inCarSpeed * CAR_SPEED_CONSTANT。 // 加速,加速 //} inDelta = (CAR_SPEED_SET g_inCarSpeed)。 //偏差值乘以比例參數(shù) P =(inDelta * SPEED_CONTROL_P)。 //積分環(huán)節(jié)比例控制 if(g_inSpeedIntegral =Speed_Motor_Max) //積分限幅 g_inSpeedIntegral = Speed_Motor_Max。 g_inSpeedOutOld = g_inSpeedOutNew。 //測量值每100ms更新一次 }/***************************************************************************函數(shù)功能:將每次更新的控制量按比例輸出控制每5ms調(diào)用一次 速度差最大時,取控制量的1/20,然后依次增加11/20,2/20,3/20...20/20入口參數(shù):無全局變量g_inSpeedControlOutOld, g_inSpeedControlOutNew出口參數(shù):無全局變量g_inSpeedControlOut速度控制的PWM輸出****************************************************************************/ void speed_control(void) { float inValue 。 g_inSpeedOut = (inValue * (g_inSpeedperiod + 1))/20 + g_inSpeedOutOld。 //控制次數(shù)增加一次 if(g_inSpeedperiod==20) { g_inSpeedperiod=0。 //更新速度和控制量 } }//*************************直立控制********************************************************define CAR_ANGLE_SET 0define CAR_ANGLESPEED_SET 0define ANGLE_CONTROL_P 580define ANGLE_CONTROL_D 80//int ANGLE_CONTROL_P = 340。float g_inAngleOut。 //AD采集的電壓轉(zhuǎn)換成角速度int g_inCarAngle。 //轉(zhuǎn)換的角度(90~90)extern void MotorOutput(float)。 g_inGyroSpeed = ATD_uchar_convert() 99。 //選擇通道8 采集角度 g_inCarAngle = ATD_uchar_convert() 82。 g_fCarAngle = *kalmanangleangleZero。 g_inAngleOut =(CAR_ANGLE_SET g_fCarAngle) * ANGLE_CONTROL_P + (CAR_ANGLESPEED_SET kalmanangle_dot) * ANGLE_CONTROL_D。 }/**********************MotorOutput電機輸出函數(shù)******************************************函數(shù)功能:通過int duty 來改變占空比設(shè)置電機的速度入口參數(shù): int duty占空比出口參數(shù): 無說明 :,需確認電機是正轉(zhuǎn)還是反轉(zhuǎn) 0左轉(zhuǎn) 0時右轉(zhuǎn),車輪向前運動,PWM0****************************************************************/define DEATH_CONTROL 400 //電機死區(qū)占空比void MotorOutput(float duty) { float leftMotor。 leftMotor = duty + g_inDirControlOut。 if(leftMotor =0) //克服電機死區(qū) leftMotor =leftMotor + DEATH_CONTROL。 if(rightMotor =0) rightMotor =rightMotor + DEATH_CONTROL。 if(PWMflag ==1) //保護部分標(biāo)志位 { rightMotor =0。 } if(rightMotor =0) //車模向后傾斜,角度為正,電機反轉(zhuǎn) { PORTK_PK3 = 0。 } else //polar90 車模向前傾斜,角度為負,電機正轉(zhuǎn) { PORTK_PK3 = 1。 } if(leftMotor =0) //車模向后傾斜,角度為正,電機反轉(zhuǎn) { PORTK_PK2 = 0。 } else //polar90 車模向前傾斜,角度為負,電機正轉(zhuǎn) { PORTK_PK2 = 1。 } }/****************************************************************程序功能:采集CCD1數(shù)據(jù),通過上位機生成圖像 下面鏡頭入口參數(shù):無出口參數(shù):unsigned char uchr_ccd_data(128)共128個數(shù)據(jù),其性質(zhì)為全局數(shù)組電氣連接:PWM7CCD_CLK PORTE_PE2CCD_SI CCD_AOAN10 850us (OK)******************************************************************/define CCD_SI PORTK_PK4 //定義CCD操作接口void CCD_Collect(void){ //*********定義發(fā)送數(shù)據(jù)數(shù)組,并初始化起始位 int i=0。 PWME = 0X8f。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //短暫延時 //******啟動采集CCD數(shù)據(jù)輸出,并同步時序 CCD_SI = 0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //短暫延時 CCD_SI = 1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //短暫延時 CCD_SI = 0。i=128。 //等待IC1撲捉到CLK的下降沿 ATD0CTL5 = 0X0A。 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 //等待IC0撲捉到CLK的上升沿 x = TC0。 //等待IC1撲捉到CLK的下降沿 x= TC1。 Sendflag = 0。 int x。 while(!TFLG1_C2F)。 //清除標(biāo)志位 //******啟動采集CCD數(shù)據(jù)輸出,并同步時序 CCD_SI2 = 0。 //等待IC1撲捉到CLK的下降沿 x= TC3。 //短暫延時 CCD_SI2 = 1。 //等待IC0撲捉到CLK的上升沿 x = TC2。 //短暫延時 CCD_SI2 = 0。i=128。 //等待IC1撲捉到CLK的下降沿 ATD0CTL5 = 0X0B。 x= TC3。 //等待IC0撲捉到CLK的上升沿 x = TC2。 //等待IC1撲捉到CLK的下降沿 x= TC3。 //等待IC0撲捉到CLK的上升沿 x = TC2。 //等待IC1撲捉到CLK的下降沿 x= TC3。 Sendflag2 = 0
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1