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

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

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

?? freescale智能車大賽源程序
?? 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一区二区三区免费野_久草精品视频
中文字幕视频一区| 极品美女销魂一区二区三区免费| 亚洲一区在线电影| 蜜臀av在线播放一区二区三区 | 国产日韩欧美高清在线| 国产精品丝袜一区| 亚洲在线视频免费观看| 国产伦精品一区二区三区视频青涩 | 另类欧美日韩国产在线| 国产一区二区视频在线播放| 在线看国产一区| 久久久久久亚洲综合影院红桃| 一区二区三区日韩欧美精品| 国产一区二区三区免费在线观看 | 免费在线观看精品| 色哟哟在线观看一区二区三区| 久久免费美女视频| 久久99国产精品成人| 欧美性xxxxxx少妇| 国产一区二区不卡老阿姨| 欧美三级中文字幕| 亚洲情趣在线观看| youjizz久久| 中文字幕av不卡| 狠狠色综合日日| 精品欧美久久久| 捆绑调教一区二区三区| 精品视频色一区| 亚洲成人一区二区| 欧美婷婷六月丁香综合色| 亚洲欧洲成人av每日更新| 韩国一区二区在线观看| 日韩午夜小视频| 久久精品国产999大香线蕉| 欧美精品丝袜久久久中文字幕| 亚洲综合一二区| 欧美四级电影网| 亚洲成人一区在线| 这里只有精品免费| 蜜臀久久99精品久久久久久9| 欧美日韩成人综合在线一区二区| 亚洲福利电影网| 91精品黄色片免费大全| 日韩电影在线一区二区三区| 7777精品伊人久久久大香线蕉最新版| 亚洲国产精品人人做人人爽| 精品视频资源站| 蜜臀va亚洲va欧美va天堂| 欧美不卡123| 国产成人午夜视频| 亚洲精品欧美综合四区| 91小视频免费看| 亚洲香肠在线观看| 日韩三级视频在线看| 国产一区在线不卡| 国产精品成人免费| 欧美人与性动xxxx| 老司机午夜精品99久久| 亚洲国产精品黑人久久久| 色综合久久六月婷婷中文字幕| 亚洲第一激情av| 久久看人人爽人人| 91在线你懂得| 免费在线看成人av| 欧美激情综合在线| 在线观看三级视频欧美| 美女网站一区二区| 国产精品国产自产拍高清av王其| 欧美在线观看18| 黄色精品一二区| 亚洲综合一二区| 久久久精品tv| 欧美日韩精品高清| 国产99久久久国产精品潘金| 亚洲精品一二三区| 精品捆绑美女sm三区| 91在线视频播放地址| 蜜臀久久久久久久| 一色桃子久久精品亚洲| 日韩一级视频免费观看在线| 99精品国产视频| 美女视频一区二区三区| 亚洲日本在线观看| 久久精品亚洲麻豆av一区二区 | 麻豆精品久久久| 午夜精品成人在线视频| 国产亚洲污的网站| 91麻豆精品91久久久久同性| 99久久精品国产一区二区三区| 奇米亚洲午夜久久精品| 亚洲美女电影在线| 久久久精品黄色| 欧美一区二区三区免费视频| 99久久99久久久精品齐齐| 美国毛片一区二区| 亚洲福利一区二区| 亚洲欧美电影院| 国产欧美精品一区二区三区四区| 91麻豆精品国产无毒不卡在线观看| 99久久精品久久久久久清纯| 国产精品1024久久| 韩国欧美国产1区| 五月综合激情网| 亚洲免费大片在线观看| 中文字幕第一区二区| 国产亚洲一区二区三区| 日韩美女主播在线视频一区二区三区| 色欧美日韩亚洲| 波多野洁衣一区| 国产.精品.日韩.另类.中文.在线.播放| 日本在线不卡视频| 五月婷婷激情综合| 午夜精品久久久久久| 亚洲免费伊人电影| 亚洲三级在线观看| 亚洲日本在线a| 玉足女爽爽91| 亚洲午夜激情网页| 天天综合色天天| 日韩极品在线观看| 一区二区三区.www| 亚洲美女免费在线| 亚洲一二三区在线观看| 亚洲成a人v欧美综合天堂| 亚洲电影第三页| 免费在线观看精品| 精品亚洲成av人在线观看| 国内精品伊人久久久久影院对白| 久久99精品国产.久久久久久| 免费一区二区视频| 国产精品中文字幕日韩精品| 国产精品99久久久久久有的能看 | 粉嫩久久99精品久久久久久夜| 成人午夜私人影院| a亚洲天堂av| 欧美日韩在线精品一区二区三区激情| 欧美三级午夜理伦三级中视频| 欧美日韩精品一区二区三区| 日韩一区二区在线观看| 久久青草欧美一区二区三区| 国产精品麻豆久久久| 亚洲午夜羞羞片| 久久不见久久见免费视频1| 国产福利一区在线| 色综合久久综合网| 91精品国产欧美一区二区18| 久久亚洲精精品中文字幕早川悠里 | 老司机精品视频一区二区三区| 久久国产精品第一页| 成人亚洲精品久久久久软件| 一本大道av伊人久久综合| 欧美狂野另类xxxxoooo| 欧美α欧美αv大片| 日日夜夜免费精品视频| 国产精品18久久久久久久久| 色天天综合色天天久久| 日韩久久免费av| 亚洲视频1区2区| 美洲天堂一区二卡三卡四卡视频| 成人综合在线观看| 91精品国产欧美一区二区| 国产精品国产三级国产普通话三级| 亚洲成a天堂v人片| 粉嫩嫩av羞羞动漫久久久| 欧美二区三区91| 亚洲欧洲精品天堂一级 | 亚洲丝袜美腿综合| 久久99精品久久只有精品| 91视频免费播放| 精品国产91九色蝌蚪| 一区二区三区在线播放| 国产乱码精品一区二区三区忘忧草| 色久优优欧美色久优优| 久久无码av三级| 日韩电影一区二区三区| 色综合天天综合色综合av| 久久久久久久一区| 青青草原综合久久大伊人精品优势| 91色在线porny| 欧美国产综合一区二区| 日本中文一区二区三区| 色素色在线综合| 国产精品高清亚洲| 国产精品18久久久久久久久| 777a∨成人精品桃花网| 亚洲日本电影在线| 成人深夜在线观看| 欧美韩国日本综合| 国产伦精品一区二区三区免费 | 成人精品视频一区二区三区| 欧美成va人片在线观看| 丝袜脚交一区二区| 欧洲精品在线观看| 一区二区三区中文在线| 91免费国产在线| 欧美高清一级片在线观看| 国产高清成人在线| 国产欧美日韩在线观看| 国产精品18久久久久久久久久久久| 欧美mv日韩mv国产网站app|