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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

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

?? 有關飛思卡爾智能車源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
小車控制程序清單 

/* 

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

* 工程名稱:SmartCar 

* 功能描述:結合飛思卡爾16位單片機MC9S12DG128B完成小車自動尋跡,沿黑線行駛功能 

* IDE環境: Metrowerks CodeWarrior 4.1 

* 組成文件: 

* main.c 

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

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

* 日期: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 數值越大,速度越慢 */ 

#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 */ 

/* 

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

* 主程序 

* 

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

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

* 

* 硬件連接:PORTB 接傳感器 

* PWM 輸出口 (1)接舵機 (2)接電機驅動芯片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; 

} 

} 
/* 

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

* 小車尋跡行駛函數 

* 

* 程序描述: 通過傳感器采集數據,并對其進行處理,通過PID算法得出小車穩定行駛所需的參數,進而調用PWM輸出函數 

* 控制舵機與電機的工作 

* 

* 注意: 這個函數調用了 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 ); 

/* 穩定性系數的計算 */ 

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); 

} 

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

* 系統初始化函數 

* 

* 程序描述: 初始化了系統時鐘,FLASH 和 EEPRO的工作頻率,PWM輸出口,定時器,以及PID算法中的有關參數 

* 

* 注意: 這個函數調用了 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; /* 選定所相環時鐘 */ 

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; /* 引用全局變量,系統時鐘 */ 

void CarMain(void); 

/* 

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

* PWM初始化函數 

* 

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

void Init_PWMout(void) 

{ 

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

PWMPOL = 0x22; 

PWMCTL = 0x50; 

PWMCLK = 0x02; 

PWMSCLA = 4; 

} 

/* 

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

* PWM輸出函數 

* 程序描述:輸入參數為方向,速度 

* 方向:-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; /* 設置舵機角度 */ 

if(Velocity>24000) Velocity=24000; 

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

PWMDTY45 = Velocity; /* 設置電機速度 */ 

} 

/* 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; 

/* 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区不卡视频| 亚洲成a人片在线观看中文| 蜜桃传媒麻豆第一区在线观看| 色综合久久天天| 亚洲免费在线观看| 欧洲精品在线观看| 日本最新不卡在线| 欧美成人一区二区三区| 国内精品久久久久影院薰衣草| 欧美精品一区二区三区视频| 国产一区二区三区精品视频| 欧美国产成人在线| 91免费在线播放| 日韩精品成人一区二区在线| 日韩限制级电影在线观看| 国产在线麻豆精品观看| 国产女主播一区| 色综合色狠狠综合色| 五月综合激情网| 精品久久久久99| zzijzzij亚洲日本少妇熟睡| 一区二区三区免费观看| 精品免费99久久| 成人精品视频网站| 中文字幕在线免费不卡| 欧美日韩国产一级| 国产精选一区二区三区| 一区二区三区免费| 欧美mv日韩mv国产| 日本道在线观看一区二区| 奇米在线7777在线精品| 国产精品久久影院| 欧美一级一区二区| 91美女视频网站| 日韩激情一二三区| 亚洲色图欧洲色图婷婷| 欧美α欧美αv大片| 91久久精品日日躁夜夜躁欧美| 日本成人在线网站| 亚洲欧美日韩中文播放| 精品粉嫩超白一线天av| 91成人免费在线视频| 国产综合久久久久久久久久久久| 亚洲欧美日韩在线不卡| 久久精品亚洲麻豆av一区二区| 欧美午夜精品一区二区蜜桃| 大白屁股一区二区视频| 亚洲1区2区3区4区| 亚洲国产精品成人综合| 欧美日韩不卡视频| 一本大道久久a久久综合婷婷| 国内外成人在线视频| 国产人伦精品一区二区| 91精品国产色综合久久不卡蜜臀| 99热这里都是精品| 国内精品国产成人国产三级粉色 | 午夜精品久久久久久久久久久 | 亚洲18色成人| 国产精品黄色在线观看| 26uuu欧美| 欧美一区二区三区在线观看视频| 91网站最新网址| 懂色av一区二区在线播放| 久久国产精品99精品国产| 亚洲午夜免费视频| 依依成人精品视频| 亚洲三级免费电影| 国产精品久久精品日日| 久久久久久电影| 久久综合久色欧美综合狠狠| 日韩欧美国产麻豆| 欧美一级生活片| 日韩欧美久久久| 日韩一区二区免费在线电影| 91精品久久久久久久91蜜桃| 欧美日韩一级二级三级| 欧美视频一区二区三区在线观看| 色哟哟一区二区在线观看| 91成人免费网站| 欧美日韩亚洲另类| 欧美高清你懂得| 51精品视频一区二区三区| 欧美一级在线免费| 日韩免费成人网| 国产欧美1区2区3区| 国产精品妹子av| 亚洲精品日韩综合观看成人91| 亚洲欧洲日产国码二区| 亚洲男同性恋视频| 一区二区三区不卡视频| 亚洲自拍偷拍网站| 亚洲福利一二三区| 日韩精品一级二级| 麻豆成人av在线| 国产成人鲁色资源国产91色综| 国产成人av电影在线| 91视频你懂的| 欧美日韩一级大片网址| 日韩欧美国产麻豆| 中文字幕国产一区| 亚洲激情综合网| 男女男精品视频网| 国产老妇另类xxxxx| 91免费在线视频观看| 欧美一级精品在线| 中文字幕国产精品一区二区| 伊人夜夜躁av伊人久久| 日本亚洲最大的色成网站www| 精东粉嫩av免费一区二区三区| 国产精品香蕉一区二区三区| 不卡在线观看av| 337p亚洲精品色噜噜噜| 久久久久一区二区三区四区| 自拍偷在线精品自拍偷无码专区| 一片黄亚洲嫩模| 国产一区二区成人久久免费影院 | 精品一区二区在线看| 国产ts人妖一区二区| 91搞黄在线观看| 国产性天天综合网| 亚洲成年人网站在线观看| 国产精品综合av一区二区国产馆| 91丨九色丨黑人外教| 欧美变态tickling挠脚心| 日韩美女视频一区| 久久精品国产澳门| 在线观看欧美黄色| 国产无遮挡一区二区三区毛片日本| 亚洲男人电影天堂| 精品一区二区三区视频| 欧美午夜精品一区| 国产精品少妇自拍| 日本免费新一区视频| 91亚洲精品一区二区乱码| 精品少妇一区二区三区视频免付费 | 538在线一区二区精品国产| 国产精品污网站| 免费一级欧美片在线观看| 91蝌蚪porny| 久久精品视频网| 免费一级片91| 欧美片在线播放| 一卡二卡三卡日韩欧美| 成人午夜私人影院| 精品毛片乱码1区2区3区| 亚洲一区二区成人在线观看| www.欧美精品一二区| 精品国产免费一区二区三区四区 | 亚洲一区二区三区国产| 成人手机在线视频| 26uuu亚洲| 精品一区二区三区在线观看| 欧美日韩夫妻久久| 亚洲一区在线视频| 99精品视频在线观看免费| 国产色产综合产在线视频| 精品影视av免费| 欧美tickling网站挠脚心| 蜜桃av一区二区在线观看 | 免费一级欧美片在线观看| 欧美日韩精品三区| 五月天视频一区| 欧美日韩一卡二卡| 亚洲国产三级在线| 欧美在线|欧美| 一区二区三区欧美亚洲| 欧美影院一区二区三区| 亚洲精品美腿丝袜| 色偷偷88欧美精品久久久| 亚洲三级在线播放| 色偷偷久久人人79超碰人人澡| 亚洲欧美成aⅴ人在线观看| 99久精品国产| 亚洲麻豆国产自偷在线| 色婷婷综合久色| 亚洲一区二区三区视频在线 | 51精品国自产在线| 麻豆精品一区二区三区| 日韩精品一区二区三区swag| 老司机免费视频一区二区 | 在线电影一区二区三区| 午夜久久福利影院| 欧美精品欧美精品系列| 青青草原综合久久大伊人精品优势| 91精品国产综合久久久久久久久久 | 日韩福利视频导航| 日韩一级视频免费观看在线| 九九**精品视频免费播放| 久久久噜噜噜久久人人看| 成人做爰69片免费看网站| 亚洲视频香蕉人妖| 欧美精品自拍偷拍| 国产在线播精品第三| 国产精品毛片a∨一区二区三区| 色天天综合色天天久久| 日韩激情视频在线观看| 国产婷婷色一区二区三区在线| 91一区在线观看| 日本va欧美va精品发布| 久久久精品免费网站|