亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? freescale智能車大賽源程序.c

?? 有關(guān)飛思卡爾智能車源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
小車控制程序清單 

/* 

*********************************************************************************** 

* 工程名稱:SmartCar 

* 功能描述:結(jié)合飛思卡爾16位單片機(jī)MC9S12DG128B完成小車自動(dòng)尋跡,沿黑線行駛功能 

* IDE環(huán)境: Metrowerks CodeWarrior 4.1 

* 組成文件: 

* main.c 

* SmartCar.c/PID.c/LCD1620.c/Test.c 

* 說明: 本版本為智能小車程序早期版本,還有待更進(jìn)一步完善 

* 日期:2006-5-6 

* (c) Copyright 2006,Zhao Cheng 

* All Rights Reserved 

* 

* 

* By : Zhao Cheng 

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

/* 

************************************************************************************ main.c 

* 

* (c) Copyright 2006,Zhao Cheng 

* All Rights Reserved 

* 

* By : Zhao Cheng 

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

#include <hidef.h> /* common defines and macros */ 

#include <mc9s12dg128.h> /* derivative information */ 

#pragma LINK_INFO DERIVATIVE "mc9s12dg128b" 

#define HIGHSPEED 11500 /* 速度參量,此處未使用測速模塊 */ 

#define LOWSPEED0 12500 /* 0-24000 數(shù)值越大,速度越慢 */ 

#define LOWSPEED1 12000 /* used in CarMain() */ 

#define STABMAX 50 

#define StopCar() PORTK |= 0x80 /* stop the motor */ 

#define StartCar() PORTK |= 0x04 /* start the motor */ 

#define BrakeCar() PORTK &= 0xfb /* slow the speed of the SmartCar */ 

unsigned int SYSCLOCK=0; /* update in INT_Timer0() */ 

/* 

*********************************************************************************** 

* FUNCTION PROTOTYPES 

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

/* write in "SmartCar.c" */ 

void Init_INT_RTI(void); /* initiate Real Time Interrupt */ 

void Init_INT_Timer(void); /* INT_Timer0 initiate */ 

void Init_PWMout(void); /* initiate PWM output */ 

void PWMout(int, int); /* output PWM */ 

/* write in "PID.c" */ 

void Init_PID(void); /* initiate PID parameter */ 

int CalculateP(void); /* calculate parameter P */ 

float CalculatePID(void); /* calculate PID */ 

int SignalProcess(unsigned char); /* Process the signal from the sensors */ 

/* write in "Test.c" */ 

void IOtest(void); /* Test I/O */ 

void PWMtest(void); /* Test PWM output */ 

int SignalTest(void); /* Test the sensors */ 

/* write in local file */ 

void Init(void); /* initiate parameter */ 

void ProtectMoto(void); /* the function protecting the Motor */ 

void CarMain(void); /* SmartCar main function */ 

/* 

*********************************************************************************** 

* 主程序 

* 

* 程序描述: 完成智能小車系統(tǒng)的初始化,通過按鍵可選擇工作模式,有I/O測試,PWM 輸出測試 

* 傳感器測試,以及小車正常工作模式 

* 

* 硬件連接:PORTB 接傳感器 

* PWM 輸出口 (1)接舵機(jī) (2)接電機(jī)驅(qū)動(dòng)芯片MC33886 

* 

* 說明: 無 

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

void main(void) 

{ 

Init(); 

DDRB = 0x00; 

switch(PORTB) 

{ 

case 0x80: 

IOtest(); 

break; 

case 0x40: 

PWMtest(); 

break; 

case 0x20: 

SignalTest(); 

break; 

default: 

DDRA = 0x00; 

DDRB = 0xff; 

DDRK = 0xff; 

PORTB = 0xff; 

CarMain(); 

EnableInterrupts; 

for(;;); 

break; 

} 

} 
/* 

*********************************************************************************** 

* 小車尋跡行駛函數(shù) 

* 

* 程序描述: 通過傳感器采集數(shù)據(jù),并對(duì)其進(jìn)行處理,通過PID算法得出小車穩(wěn)定行駛所需的參數(shù),進(jìn)而調(diào)用PWM輸出函數(shù) 

* 控制舵機(jī)與電機(jī)的工作 

* 

* 注意: 這個(gè)函數(shù)調(diào)用了 SignalProcess(unsigned char),BrakeCar(),PWMout(Direction, Velocity) 

* 

* 說明: 無 

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

void CarMain(void) 

{ 

static int Direction=0, Velocity; 

static unsigned char signal; 

static unsigned int BrakeTime = 0, BrakeControl = 0; 

static unsigned int Stability=0, Stab[STABMAX], PStab=0, StabAver; 

int i; 

signal = PORTA; 

PORTB = ~signal; 

Direction = SignalProcess( signal ); 

/* 穩(wěn)定性系數(shù)的計(jì)算 */ 

Stability -= Stab[PStab]; 

Stab[PStab] = (unsigned int)Direction/100; 

Stability += Stab[PStab]; 

PStab++; 

if(PStab >= STABMAX) PStab=0; 

StabAver = 0; 

for(i=0;i<STABMAX;i++) 

{ 

if(Stability > Stab[i]) 

StabAver += Stability - Stab[i]; 

else 

StabAver += Stab[i] - Stability; 

} 

if( BrakeTime != 0) 

{ 

BrakeTime--; 

BrakeCar(); 

} 

else 

{ 

StartCar(); 

if(BrakeControl>0) 

BrakeControl--; 

if(Direction < -4000 || Direction > 4000 ) 

{ 

Velocity = LOWSPEED0; 

if(BrakeControl == 0 && StabAver/STABMAX<22) 

{ 

BrakeTime = 20; 

BrakeControl = 120; 

} 

} 

else 

{ 

if(Direction < -2500 || Direction > 2500 ) 

Velocity = LOWSPEED1; 

else 

Velocity = HIGHSPEED; 

} 

} 

PWMout(Direction, Velocity); 

} 

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

* 系統(tǒng)初始化函數(shù) 

* 

* 程序描述: 初始化了系統(tǒng)時(shí)鐘,F(xiàn)LASH 和 EEPRO的工作頻率,PWM輸出口,定時(shí)器,以及PID算法中的有關(guān)參數(shù) 

* 

* 注意: 這個(gè)函數(shù)調(diào)用了 Init_PWMout()nit_INT_Timer()nit_PID()   

* 

* 說明: 無 

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

void Init(void) 

{ 

REFDV=0x01; /* initiate PLL clock */ 

SYNR =0x02; /* system clock 24M */ 

while (!(CRGFLG & 0x08)){} /* wait untill steady */ 

CLKSEL=0x80; /* 選定所相環(huán)時(shí)鐘 */ 

FCLKDIV=0x49; /* 使FLASH 和 EEPROM */ 

/* 的擦除操作工作頻率在200HZ左右 */ 

ECLKDIV=0x49; 

Init_PWMout(); /* 01:50Hz 45:1kHz */ 

Init_INT_Timer(); /* initiate ETC(Enhanced Capture Clock) */ 

Init_PID(); /* initiate PID caculating process */ 

DDRK |= 0x80; /* Start Car -- stop car */ 

PORTK &= 0x7F; 

} 

/* 

*********************************************************************************** 

* SmartCar.c 

* 

* (c) Copyright 2006,Zhao Cheng 

* All Rights Reserved 

* 

* By : Zhao Cheng 

* Data : 2006_5_6 

* Note : Don't change this file if possible. 

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

#include <hidef.h> 

#include <mc9s12dg128.h> 

extern SYSCLOCK; /* 引用全局變量,系統(tǒng)時(shí)鐘 */ 

void CarMain(void); 

/* 

*********************************************************************************** 

* PWM初始化函數(shù) 

* 

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

void Init_PWMout(void) 

{ 

PWME = 0x22; /*01:50Hz 45:1kHz */ 

PWMPOL = 0x22; 

PWMCTL = 0x50; 

PWMCLK = 0x02; 

PWMSCLA = 4; 

} 

/* 

*********************************************************************************** 

* PWM輸出函數(shù) 

* 程序描述:輸入?yún)?shù)為方向,速度 

* 方向:-45~45 

* 速度:0~24000 

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

void PWMout(int Direction, int Velocity) 

{ 

Direction = Direction/3 + 4500; 

if(Direction<3000) Direction=3000; 

if(Direction>6000) Direction=6000; 

PWMPER01 = 60000; /* Center 1500ms*3 */ 

PWMDTY01 = Direction+93; /* 設(shè)置舵機(jī)角度 */ 

if(Velocity>24000) Velocity=24000; 

PWMPER45 = 24000; /* 1kHz ( <10kHz ) */ 

PWMDTY45 = Velocity; /* 設(shè)置電機(jī)速度 */ 

} 

/* initiate Real Time Interrupt 1.0 */ 

void Init_INT_RTI(void) 

{ 

RTICTL = 0x74; 

CRGINT |=0x80; 

} 

/* Real Time Interrupt 1.0 */ 

interrupt void INT_RTI(void) 

{ 

CRGFLG |= 0x80; /* clear the interrrupt flag */ 

} 

/* INT_Timer0 initiate 1.0 */ 

void Init_INT_Timer(void) 

{ 

TSCR2 =0x07; /* 128Hz at 16M bus clok */ 

/* 128Hz * 2/3 at 24m bus clock */ 

/* in fact it is a little more than it. */ 

TIOS |=0x01; /* I/O select */ 

TIE |=0x01; /* Interrupt Enable */ 

TSCR1|=0x80; /* TSCR1_TEN=1 //Timer Enable */ 

} 

/* INT_Timer0 1.0 */ 

interrupt void INT_Timer0(void) 

{ 

SYSCLOCK++; 

CarMain(); 

TC0 = TCNT + 1874; /* 1875-1 :100Hz */ 

/* F = Fosc / (TC*128) */ 

TFLG1 |=0x01; /* clear interrupt flag */ 

} 

/* not finished EEPROM */ 

void EEPROM(void) 

{ 

ECLKDIV = 0x4F; 

while(!(ECLKDIV&0x80)) /* wheather */ 

{} 

while(!(ESTAT&0x80)) /* wheather the command buffer is empty */ 

{} 

while(!(EPROT&0x80)) /* wheather the eeprom is enabled to */ 

{} 

ECMD = 0x41; 

ESTAT |= 0x80; 

while(!(ESTAT&0x80)) /* wheather the command buffer is empty */ 

{} 

}
/* 

*********************************************************************************** 

* PID.c 

* Description: This file includes some basic calculation function of PID 

* (c) Copyright 2006,Zhao Cheng 

* All Rights Reserved 

* 

* By : Zhao Cheng 

* Data : 2006_5_6 

* Note : Don't change this file if possible. 

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

#include <mc9s12dg128.h> /* derivative information */ 

/* 

*********************************************************************************** 

* 宏定義 

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

#define STABMAX 50 

#define SENSORNUM 8 

#define SAMPLETIMES 5 

/* 

*********************************************************************************** 

* FUNCTION PROTOTYPES 

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

int CalculateP(void); 

float CalculatePID(void); 

/********************************** PID控制程序 ********************************/ 

struct CARSTATE 

{ 

int E0; 

int E1; 

int E2; 

int E3; 

float Integral; 

}CarState; 

/* 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxx久久| 日韩免费看网站| 久久久精品免费观看| 亚洲综合激情网| 成人伦理片在线| 欧美va亚洲va在线观看蝴蝶网| 亚洲精品日日夜夜| 成人福利在线看| 亚洲精品一区二区精华| 亚洲成a人v欧美综合天堂下载| 成人久久久精品乱码一区二区三区| 欧美一级日韩不卡播放免费| 一二三区精品视频| 波多野结衣中文字幕一区二区三区| 日韩精品专区在线影院观看| 亚洲一级在线观看| 色婷婷综合久久久中文字幕| 国产精品乱码一区二区三区软件| 精品一区二区国语对白| 91精品国产综合久久久久| 亚洲女性喷水在线观看一区| 精品视频在线免费看| 亚洲欧美另类小说| 成人免费视频一区二区| 久久精品在线观看| 国产一区二区三区高清播放| 日韩视频一区在线观看| 日韩专区中文字幕一区二区| 欧美自拍偷拍午夜视频| 亚洲欧美另类图片小说| 菠萝蜜视频在线观看一区| 日本一区二区三区视频视频| 国产一区二区伦理片| 精品三级av在线| 久久 天天综合| 日韩欧美国产综合| 男女男精品网站| 欧美一级电影网站| 热久久免费视频| 欧美一区二区三区四区视频 | 日韩欧美在线1卡| 亚洲成av人综合在线观看| 欧美色中文字幕| 亚洲成人福利片| 制服丝袜中文字幕亚洲| 天天操天天色综合| 欧美一区二区三区免费| 免费精品视频最新在线| 日韩一区二区三区免费观看| 美美哒免费高清在线观看视频一区二区 | 午夜精品久久久久影视| 欧美日韩国产一区二区三区地区| 亚洲国产一区二区在线播放| 欧美在线视频你懂得| 亚洲国产精品影院| 欧美一级欧美三级| 狠狠狠色丁香婷婷综合久久五月| 欧美精品一区二| 国产精品一品视频| 成人欧美一区二区三区小说| 91在线你懂得| 一卡二卡欧美日韩| 欧美一区二区免费观在线| 精一区二区三区| 国产精品无码永久免费888| 91在线一区二区| 视频在线观看一区二区三区| 日韩精品中文字幕一区| 国产成人综合自拍| 亚洲日本青草视频在线怡红院| 在线视频你懂得一区二区三区| 香蕉成人啪国产精品视频综合网| 欧美一区二区三区啪啪| 国产精品123区| 18涩涩午夜精品.www| 欧美精品久久天天躁| 欧美妇女性影城| 精品一区二区在线看| 亚洲欧洲www| 欧美精三区欧美精三区| 国产永久精品大片wwwapp| 亚洲视频中文字幕| 91精选在线观看| 国产99一区视频免费| 亚洲自拍欧美精品| 精品盗摄一区二区三区| 91亚洲资源网| 毛片av中文字幕一区二区| 国产精品乱人伦一区二区| 欧美揉bbbbb揉bbbbb| 国产一区二三区| 一区二区三区四区在线播放| 日韩三级视频在线看| av电影天堂一区二区在线| 日韩精品一级中文字幕精品视频免费观看 | 成人ar影院免费观看视频| 亚洲一区二区av在线| 国产色产综合产在线视频| 色综合天天综合| 国产真实乱偷精品视频免| 亚洲制服丝袜在线| 久久精品在线免费观看| 欧美日韩精品一区二区三区| 福利一区二区在线| 日韩av电影天堂| 亚洲免费观看高清完整| 精品99久久久久久| 欧美日韩精品一区二区三区四区| 成人高清伦理免费影院在线观看| 日韩高清在线电影| 亚洲精品水蜜桃| 国产三级精品在线| 日韩欧美国产综合在线一区二区三区 | 亚洲第一狼人社区| 中文字幕免费不卡在线| 欧美成人一区二区三区片免费 | 国产一区中文字幕| 亚洲成在线观看| 亚洲欧美一区二区久久| 欧美极品美女视频| 日韩欧美在线网站| 欧美色综合网站| 一本大道久久a久久精二百| 国产精品18久久久久久久久久久久| 亚洲大片在线观看| 悠悠色在线精品| 国产精品久久久久影院色老大| 日韩精品一区二| 8x福利精品第一导航| 在线视频国内自拍亚洲视频| 成人综合婷婷国产精品久久蜜臀| 激情五月婷婷综合| 蜜臀av一级做a爰片久久| 亚洲一区二区欧美日韩| 亚洲欧洲另类国产综合| 国产日韩欧美高清| 精品av综合导航| 精品88久久久久88久久久| 欧美丰满少妇xxxxx高潮对白| 91久久精品一区二区| 精品国产乱码久久久久久图片 | 91激情五月电影| 成年人国产精品| 国产.欧美.日韩| 国产老肥熟一区二区三区| 老汉av免费一区二区三区 | 亚洲久本草在线中文字幕| 国产精品免费网站在线观看| 国产三级一区二区三区| 国产午夜亚洲精品不卡| 欧美精品一区二区不卡| 久久嫩草精品久久久精品| 精品日韩成人av| 精品国产一区二区亚洲人成毛片| 91精品国产综合久久精品app| 欧美日韩在线三区| 欧美亚洲日本国产| 91福利在线免费观看| 色乱码一区二区三区88| 91麻豆高清视频| 欧美中文字幕一二三区视频| 欧美性做爰猛烈叫床潮| 欧美视频自拍偷拍| 欧美精品色综合| 日韩一区二区免费高清| 日韩欧美电影一二三| 精品国产免费人成电影在线观看四季| 日韩免费观看2025年上映的电影| 精品久久一区二区| 久久夜色精品国产噜噜av| 国产欧美日韩综合精品一区二区| 国产拍欧美日韩视频二区| 综合激情成人伊人| 亚洲精品免费一二三区| 午夜影院久久久| 麻豆成人av在线| 国产精品99久久久久久宅男| 大白屁股一区二区视频| 色天天综合久久久久综合片| 欧美日韩一区二区三区在线| 欧美一区二区三区免费视频| 久久久精品黄色| 综合欧美一区二区三区| 亚洲图片欧美色图| 捆绑调教一区二区三区| 粉嫩一区二区三区性色av| 在线视频综合导航| 欧美一级黄色片| 国产欧美视频在线观看| 一区二区三区欧美激情| 天天综合色天天| 国产在线精品免费| 色综合久久99| 日韩一区二区三区观看| 日本一区二区三区dvd视频在线| 自拍偷自拍亚洲精品播放| 日日摸夜夜添夜夜添精品视频 | 国产sm精品调教视频网站| 99精品视频在线观看免费| 欧美日韩成人一区二区|