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

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

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

?? freescale智能車大賽源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:

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

* 初始化PID參數 

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

void Init_PID() 

{ 

CarState.E0 = 0; 

CarState.E1 = 0; 

CarState.E2 = 0; 

CarState.E3 = 0; 

CarState.Integral = 0; 

} 

/* 

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

* 信號處理函數 

* 

* 程序描述: 對傳感器采集過來的數據進行處理,得到一些基本的計算參數 

* 

* 說明: 無 

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

int SignalProcess( unsigned int signal ) 

{ 

const int BitValue[8] = {43,26,12,6,-6,-12,-26,-43}; //MAX:28 

int i,CurrPoint=0,LastPoint=0,BitNum=0; 

unsigned char SignalBit[8]; 

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

{ 

SignalBit[i] = signal & 0x0001; 

BitNum += SignalBit[i]; 

signal >>= 1; 

} 

switch(BitNum) 

{ 

case 1: 

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

if(SignalBit[i] != 0) 

CurrPoint += BitValue[i]; 

CarState.E0 = CurrPoint; 

break; 

case 2: 

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

if(SignalBit[i] != 0) 

CurrPoint += BitValue[i]; 

CurrPoint >>= 1; 

CarState.E0 = CurrPoint; 

break; 

default: 

CarState.E0 = CarState.E1; 

break; 

} 

return CalculateP()*100; 

} 

/* 

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

* 

* PID計算函數 

* 

* 程序描述: 計算P參數 

* 

* 說明: 無 

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

int CalculateP(void) 

{ 

CarState.E1 = CarState.E0; 

return((int)CarState.E0); 

} 

/* 

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

* PID計算函數 

* 

* 程序描述: 對傳感器采集過來的數據進行處理,得到一些基本的計算參數 

* 

* 說明: 無 

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

float CalculatePID(void) 

{ 

float P, I = 0, D; 

/* parameter const */ 

float Kp = 1.0, Ki = -0.0002, Kd = -0.0002; 

/* P parameter */ 

P = CarState.E0 * Kp; 

/* I parameter */ 

if(P+I<2) 

{ 

CarState.Integral += Ki * CarState.E0; 

I = CarState.Integral; 

} 

/* D parameter */ 

D = Kd * ( CarState.E0 + 3*CarState.E1 - 3*CarState.E2 - CarState.E3 )/6.0; 

CarState.E3 = CarState.E2; 

CarState.E2 = CarState.E1; 

CarState.E1 = CarState.E0; 

return (P+I+D); 

} 
/* 

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

* Test.c 

* Description: This file includes I/ O function for test, the PWM outputs function for test, function 

* testing sensors. 

* (c) Copyright 2006,Zhao Cheng 

* All Rights Reserved 

* 

* By : Zhao Cheng 

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

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

#include <hidef.h> 

#include <mc9s12dg128.h> 

#define HIGHSPEED 8000 

#define LOWSPEED 11000 /* 速度變量,0-24000 數值越大,速度越慢 */ 

void PWMout(int, int); 

/* 24000-20000 */ 

void IOtest(void) 

{ 

static unsigned char i=0,j=0x01,k; 

DDRB = DDRA = 0xFF; 

PORTB = 0xf0; 

for(;;) 

{ 

k=(~j)&0x7f; 

PORTA = PORTB = k; 

while (TCNT != 0x0000); 

while (TCNT == 0x0000) 

{ 

if(i>9) 

{ 

j=j<<1; 

i=0; 

} 

i++; 

} 

if(j>=0x80) 

j=0x01; 

} 

} 

void PWMtest(void) 

{ 

int counter=-4500; 

DDRB = 0xff; 

PORTB = 0xff; 

TSCR1 = 0x80; /* enable timer TCNT */ 

TSCR2 = 0x00; /* TCNT prescaler setup */ 

for(;;) 

{ 

while (TCNT != 0x0000); 

while (TCNT == 0x0000); 

counter=counter+30; 

if(counter >= 3000) 

{ 

counter = 0; 

PWMout(4500, LOWSPEED); 

} 

if(counter == 1500) 

{ 

PWMout(-4500, LOWSPEED); 

} 

PORTB = (char)(counter/100); 

} 

} 

void SignalTest(void) 

{ 

unsigned char signal; 

int Direction, Velocity; 

Direction = 0; 

Velocity = LOWSPEED; 

DDRA = 0x00; 

DDRB = 0xff; 

signal = PORTA; 

PORTB = ~signal; 

switch(signal) 

{ 

case 0x08: /* 0001 1000 */ 

case 0x10: 

Direction = 800; 

Velocity = HIGHSPEED; 

break; 

case 0x04: /* 0010 0100 */ 

case 0x20: 

Direction = 1500; 

Velocity = HIGHSPEED; 

break; 

case 0x02: /* 0100 0010 */ 

case 0x40: 

Direction = 2800; 

Velocity = HIGHSPEED; 

break; 

case 0x01: /* 1000 0001 */ 

case 0x80: 

Direction = 4000; 

Velocity = LOWSPEED; 

break; 

case 0x3c: /* 0011 1100 over start line */ 

case 0xff: /* 1111 1111 over crossing line */ 

case 0x00: /* 0000 0000 go straight not need changed state */ 

default: 

break; 

} 

if(signal > 0x0f) 

Direction = -Direction; 

PWMout(Direction, LOWSPEED); 

} 

/* 

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

* LCD1620.c 

* ICC-AVR application builder : 2006-1-8 21:43:48 

* Target : M8 

* Crystal: 4.0000Mhz 

* 

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

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

#define CMD_CLEAR 0x01 

#define CMD_RESET 0x02 

#include <iom8v.h> 

#include <macros.h> 

#define LCD_DATA 0xff 

#define LCD_EN 0x01 //PORTC 0 

#define LCD_RS 0x02 //PORTC 1 

#define LCD_RW 0x04 //PORTC 2 

#define LCD_DATAPORT PORTB 

#define LCD_ENPORT PORTA 

#define LCD_RSPORT PORTA 

#define LCD_RWPORT PORTA 

void lcd_init(void); 

void lcd_write_cmd(unsigned cmd,unsigned data); 

void lcd_setxy(unsigned char x,unsigned char y); 

void lcd_write_string(unsigned char X,unsigned char Y,unsigned char *str); 

void delay_nus(unsigned int n); 

void delay_nms(unsigned int n); 

void lcd_init(void) 

{ 

DDRB |= LCD_DATA; 

DDRA |= LCD_EN | LCD_RS | LCD_RW; 

LCD_RWPORT&=~LCD_RW; 

LCD_DATAPORT=0x30; //控制字規則:5:8bit,4:16x2,3:5x7 

LCD_ENPORT|=LCD_EN; 

delay_nus(1); 

LCD_ENPORT&=~LCD_EN; 

delay_nus(40); 

lcd_write_cmd(0,0x38); //8bit test 

lcd_write_cmd(0,0x0c); //顯示開 

lcd_write_cmd(0,0x01); //顯示清屏 

lcd_write_cmd(0,0x06); //顯示光標移動設置 

} 

void lcd_write_cmd(unsigned cmd,unsigned data) 

{ 

if(cmd==0) 

LCD_RSPORT&=~LCD_RS; 

else 

LCD_RSPORT|=LCD_RS; 

LCD_DATAPORT&=0x00; 

LCD_DATAPORT=data; 

LCD_ENPORT|=LCD_EN; 

delay_nus(10); 

LCD_ENPORT&=~LCD_EN; 

delay_nus(10); 

} 

void lcd_setxy(unsigned char x,unsigned char y) 

{ 

unsigned char addr; 

if(y==0) 

addr=x+0x80; 

else 

addr=x+0xc0; 

lcd_write_cmd(0,addr); 

} 

void lcd_write_string(unsigned char X,unsigned char Y,unsigned char *str) 

{ 

lcd_setxy(X,Y); 

while(*str) 

{ 

lcd_write_cmd(1,*str); 

str++; 

} 

} 

void delay_1us(void) //1us延時函數 

{ 

asm("nop"); 

} 

void delay_nus(unsigned int n) //N us延時函數 

{ 

unsigned int i=0; 

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

delay_1us(); 

} 

void delay_1ms(void) //1ms延時函數 

{ 

unsigned int i; 

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

} 

void delay_nms(unsigned int n) //N ms延時函數 

{ 

unsigned int i=0; 

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

delay_1ms(); 

} 

//call this routine to initialize all peripherals 

void main(void) 

{ 

lcd_init(); 

while(1) 

{ 

lcd_write_cmd(0,0x01); //清屏 

delay_nms(2); 

lcd_write_string(0,0,"happy new year"); 

delay_nms(100); 

lcd_write_string(0,1,"LCD successful!"); 

delay_nms(100); 

} 

} 

/******************************* 程序結束 *********************************/ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美自拍偷拍一区| 欧美视频在线一区| 久久久精品影视| 精品一区二区在线视频| 日韩一区二区视频| 免费高清在线视频一区·| 欧美日产国产精品| 亚洲成人av资源| 欧美午夜片在线看| 亚洲午夜激情av| 欧美三级中文字幕| 五月婷婷久久综合| 欧美裸体一区二区三区| 天天av天天翘天天综合网色鬼国产| 在线观看不卡一区| 亚洲成人动漫在线观看| 91精品国模一区二区三区| 视频一区中文字幕国产| 欧美一区二区三区在线观看| 日本不卡免费在线视频| 日韩一区二区三区观看| 久久99久久99小草精品免视看| 欧美电影免费观看高清完整版在线 | 精品理论电影在线观看 | 日本91福利区| 日韩精品中文字幕一区| 紧缚奴在线一区二区三区| 久久久久久久久久电影| 成人在线视频一区| a亚洲天堂av| 中文字幕制服丝袜成人av| 色婷婷亚洲婷婷| 香蕉av福利精品导航 | 91成人在线免费观看| 亚洲国产人成综合网站| 欧美一级艳片视频免费观看| 久久精品999| 欧美激情一区二区三区不卡| 99精品欧美一区二区三区小说 | 久久理论电影网| 91小视频在线观看| 午夜av电影一区| 欧美精品一区二区三区很污很色的 | 制服丝袜国产精品| 国产精品综合视频| 日韩美女啊v在线免费观看| 欧美三级中文字| 精品一区二区三区在线观看国产| 国产女人18毛片水真多成人如厕| 色综合久久天天| 美腿丝袜一区二区三区| 不卡视频一二三四| 亚洲最大的成人av| 欧美成人福利视频| av日韩在线网站| 日韩av高清在线观看| 国产婷婷色一区二区三区四区| 色8久久精品久久久久久蜜| 毛片av一区二区| 中文字幕一区二区日韩精品绯色| 欧美日韩国产经典色站一区二区三区 | 国产精品成人在线观看| 欧美日韩一区中文字幕| 国产乱子轮精品视频| 一区二区三区免费看视频| 日韩三级视频中文字幕| 99视频在线观看一区三区| 日韩成人av影视| 亚洲欧洲国产日韩| 欧美成人一级视频| 91蝌蚪porny九色| 美女视频一区二区| 亚洲欧美电影一区二区| 精品国产凹凸成av人网站| 在线免费亚洲电影| 国产一区二区三区免费播放| 亚洲国产视频直播| 国产女主播视频一区二区| 5月丁香婷婷综合| 99视频一区二区三区| 精品写真视频在线观看| 亚洲一区免费视频| 欧美国产成人精品| 日韩女优电影在线观看| 日本道免费精品一区二区三区| 国产麻豆日韩欧美久久| 日本伊人色综合网| 亚洲欧美另类图片小说| 久久精品亚洲国产奇米99| 欧美精品色综合| 色欲综合视频天天天| 国产亚洲综合在线| 欧美一级欧美一级在线播放| 99精品国产99久久久久久白柏| 国产呦精品一区二区三区网站| 午夜精品久久久久久久久| 亚洲欧美乱综合| 欧美韩国日本一区| 欧美精品一区二区三区在线播放| 欧美日韩国产bt| 91天堂素人约啪| 高清视频一区二区| 国产一区二区三区免费播放| 奇米精品一区二区三区在线观看 | 国产精品无圣光一区二区| 欧美r级在线观看| 欧美精品亚洲二区| 欧美主播一区二区三区| 99久久国产综合精品麻豆| 国产成人亚洲精品青草天美| 久久国产乱子精品免费女| 天天影视涩香欲综合网 | 一区精品在线播放| 国产日韩欧美不卡| 欧美精品一区二区三区久久久| 91精品国产福利| 欧美日韩国产小视频| 欧美日韩电影在线播放| 在线观看91视频| 欧美在线你懂得| 色综合久久综合中文综合网| 99国产精品久久| 97久久超碰国产精品电影| 成人蜜臀av电影| 成人黄色a**站在线观看| 粉嫩在线一区二区三区视频| 国产高清成人在线| 国产91精品免费| 丁香另类激情小说| 成人在线视频一区二区| 成人黄色小视频| 92精品国产成人观看免费| 99精品国产热久久91蜜凸| 色哟哟一区二区| 91国产丝袜在线播放| 91成人免费在线视频| 精品视频在线免费观看| 欧美日韩一区 二区 三区 久久精品| 欧美四级电影网| 日韩一区二区三区四区| 欧美一区二区日韩| 欧美变态凌虐bdsm| 国产欧美日韩一区二区三区在线观看| 国产视频一区二区在线| 国产精品高清亚洲| 亚洲精品中文在线| 亚洲成人av一区二区三区| 免费高清视频精品| 国产精品中文有码| proumb性欧美在线观看| 色婷婷av一区二区三区大白胸| 欧美三级欧美一级| 日韩手机在线导航| 国产成人99久久亚洲综合精品| 国产不卡一区视频| 99re热视频精品| 欧美三片在线视频观看| 精品嫩草影院久久| 亚洲国产高清aⅴ视频| 亚洲欧美激情小说另类| 日日摸夜夜添夜夜添精品视频| 日本不卡高清视频| 从欧美一区二区三区| 在线精品视频一区二区| 日韩欧美在线观看一区二区三区| 2017欧美狠狠色| 亚洲手机成人高清视频| 亚洲bdsm女犯bdsm网站| 久久不见久久见免费视频1| 成人h精品动漫一区二区三区| 色噜噜狠狠成人中文综合| 日韩美女一区二区三区四区| 欧美激情一区二区在线| 亚洲综合一二三区| 麻豆精品久久久| 色综合色综合色综合| 欧美一级欧美三级| 中文字幕中文字幕一区二区| 偷拍自拍另类欧美| 成人亚洲一区二区一| 欧美日本精品一区二区三区| 久久免费电影网| 亚洲成人动漫在线观看| 国产一区免费电影| 欧美日韩中字一区| 久久精品免视看| 午夜电影网一区| zzijzzij亚洲日本少妇熟睡| 欧美美女一区二区在线观看| 久久九九久久九九| 亚洲福利视频一区| 国产精品18久久久久久久网站| 欧美性色黄大片| 久久久久久免费网| 亚洲国产精品久久人人爱蜜臀| 国产盗摄女厕一区二区三区| 欧美理论片在线| 国产精品久久久久久久久果冻传媒| 日韩1区2区3区| 色婷婷综合久久久中文一区二区 |