標(biāo)題:
kea128電磁組智能車控制源碼
[打印本頁]
作者:
孫紅飛
時(shí)間:
2018-1-19 16:03
標(biāo)題:
kea128電磁組智能車控制源碼
keaz1284 可跑程序
單片機(jī)源程序如下:
#include "headfile.h"
int flag;
void Para_Init()
{
PID_ANGLE.P=0.10;
PID_ANGLE.D=0.001;
PID_SPEED.P=1.5;
PID_SPEED.I=0.05;
PID_TURN.P=0.01;
PID_TURN.D=0.005;
Fuzzy_Kp=0.005;
Fuzzy_Kd=0.0005;
SetSpeed=2.5;
Set_Angle=20;
Control_Para[0]=SetSpeed;
Control_Para[1]=PID_ANGLE.P;
Control_Para[2]= PID_ANGLE.D;
Control_Para[3]= PID_SPEED.P;
Control_Para[4]= PID_SPEED.I;
Control_Para[5]= PID_TURN.P;
Control_Para[6]= PID_TURN.D;
}
void main(void)
{
DisableInterrupts ;
ADC_Init(ADC_CHANNEL_AD4,ADC_12BIT); //電磁采集0
ADC_Init(ADC_CHANNEL_AD5,ADC_12BIT); //電磁采集1
ADC_Init(ADC_CHANNEL_AD2,ADC_12BIT); //電磁采集2
ADC_Init(ADC_CHANNEL_AD3,ADC_12BIT); //電磁采集3
ADC_Init(ADC_CHANNEL_AD6,ADC_12BIT); //電磁采集4
ADC_Init(ADC_CHANNEL_AD7,ADC_12BIT); //電磁采集5
ADC_Init(ADC_CHANNEL_AD10,ADC_12BIT); //電池電壓采集實(shí)驗(yàn)
button_init(); //按鍵初始化
switch_init(); //撥碼開關(guān)初始化
FTM_PWM_init(CFTM2, FTM_CH5, 20000, 0); //PWM0 PTG7 電機(jī)驅(qū)動(dòng)
FTM_PWM_init(CFTM2, FTM_CH4, 20000, 0); //PWM1 PTG6 電機(jī)驅(qū)動(dòng)
FTM_PWM_init(CFTM2, FTM_CH3, 20000, 0); //PWM2 PTG5 電機(jī)驅(qū)動(dòng)
FTM_PWM_init(CFTM2, FTM_CH2, 20000, 0); //PWM3 PTG4 電機(jī)驅(qū)動(dòng)
PULSE_INIT(CFTM0); //編碼器1采集
PULSE_INIT(CFTM1); //編碼器1采集
uart_init(UARTR1,1500000); //wifi模塊傳輸初始化
BEEP_ON;
OLED_Init(); //OLED 初始化
OLED_Draw_Logo(); //畫logo專用函數(shù)
delay(300);
OLED_Fill(0); //初始清屏
BEEP_OFF;
I2C_Init(); //初始化加速度陀螺儀傳感器
PIT_Init(PIT_CHANNEL0,2*BUS_CLK_KHZ); //定時(shí)中斷 2ms 初始化
EnableInterrupts;
Para_Init();
led_init();
water_lights();
while(1)
{
if(beep)
{
BEEP_ON;
delay(50);
BEEP_OFF;
beep=0;
}
Read_Switch();
Check_BottonPress();
if(SendPara)
{
SendPara=0;
Send_Parameter();
}
if(flag) //此段不超過0.5ms 200ms主頻 6ms 或8ms 執(zhí)行一次
{
flag=0;
Send_Begin();
Variable_update();
Send_Variable();
Send_Inductor();
}
if(OLED_Refresh)
{
OLED_Draw_UI();
}
}
}
//定時(shí)器0中斷函數(shù)
void PIT0_ISR(void)
{
static uint8 flag_100ms,cnt=0;
RunTime=RunTime+0.002;
flag_100ms++;
if(flag_100ms>50)
{
flag_100ms=0;
Speed_Control(); //100ms進(jìn)行一次速度控制
LED_RED_TURN;
SpeedCount=0;
}
cnt++;
if(cnt==1) //4ms運(yùn)行一次
{
flag=1;
ADC_SAMPLE();
Get_Attitude();
Angle_Calculate();
Angle_Control();
Get_Speed();
Direction_Control();
}
if(cnt>=2)
{
cnt=0;
}
SpeedCount++;
Speed_Control_Output();
Moto_Out();
PIT->CHANNEL[0].TFLG |= PIT_TFLG_TIF_MASK;//清楚中斷標(biāo)志位
}
//定時(shí)器0中斷函數(shù)
void UART0_ISR(void)
{
static uint8 recv;
static uint8 data_cnt=0;
static uint8 predata[10];
static uint8 Recv_Buff[100];
static uint8 Data_Receiving=false;
// recv=Uart_GetChar(UART1_BASE);
/**********代表正在接收來自上位機(jī)的參數(shù)數(shù)據(jù)*********/
if(Data_Receiving)
{
if(data_cnt<56)
{
Recv_Buff[data_cnt]= recv;
data_cnt++;
}
else
{
data_cnt=0; //達(dá)到幀長(zhǎng)
Data_Receiving=false;
if(recv==2) //幀尾
{
Modify_Parameter(Recv_Buff);
SendPara=1; //參數(shù)回傳,確認(rèn)參數(shù)修改完成
beep=1; //開啟蜂鳴器
}
}
}
if( predata[1]==0x55&&predata[0]==0xAA)
{
switch(recv) //判斷功能字
{
case 1: //讀取參數(shù)
if(SendPara==0) SendPara=1;
beep=1; //開啟蜂鳴器
break;
case 2: //修改參數(shù)
data_cnt=0;
Data_Receiving=true;
case 3: //保存參數(shù)
//EEPROM_Save();
beep=1; //開啟蜂鳴器
break;
case 4: //功能開關(guān)1
break;
case 5: //功能開關(guān)2
break;
case 6: //功能開關(guān)3
break;
case 7: //功能開關(guān)4
break;
default: //
break;
}
}
predata[1]=predata[0];
predata[0]=recv;
}
復(fù)制代碼
注意代碼不是用Keil寫的,用的iar編譯的
iar工程文件.7z
(1.01 MB, 下載次數(shù): 262)
2022-5-24 01:53 上傳
點(diǎn)擊文件名下載附件
keaz128 飛思卡爾可跑程序
下載積分: 黑幣 -5
作者:
lll2
時(shí)間:
2018-2-24 10:44
是用iar嗎
作者:
freepoet
時(shí)間:
2018-2-25 23:27
lll2 發(fā)表于 2018-2-24 10:44
是用iar嗎
是的,我用過。程序可以用
作者:
freepoet
時(shí)間:
2018-2-25 23:28
樓主,一般用2個(gè)電感。你用4個(gè),怎么安裝的啊
作者:
浩少成
時(shí)間:
2018-2-26 20:29
freepoet 發(fā)表于 2018-2-25 23:27
是的,我用過。程序可以用
求教具體一點(diǎn)
作者:
1010704728
時(shí)間:
2018-3-19 15:54
看起來還不錯(cuò),感謝樓主無私奉獻(xiàn)
作者:
1239858139
時(shí)間:
2018-4-2 22:02
在哪里可以改管腳通道
作者:
愛愛愛啦
時(shí)間:
2018-4-5 16:52
IAR可以用嗎
作者:
永動(dòng)蛇皮車
時(shí)間:
2018-4-10 20:48
修改引腳的在哪里啊
作者:
老根
時(shí)間:
2018-4-18 10:53
樓主轉(zhuǎn)彎怎么控制的?
作者:
老根
時(shí)間:
2018-4-18 12:12
樓主能問下你的轉(zhuǎn)向控制思路嗎?
作者:
935921345
時(shí)間:
2018-5-2 20:36
幫頂
作者:
935921345
時(shí)間:
2018-5-2 21:01
請(qǐng)問樓主用的是什么上位機(jī)?
作者:
kuli
時(shí)間:
2018-5-21 22:04
感謝樓主的分享
作者:
小黑米
時(shí)間:
2018-5-30 18:17
這是F車KEA128的嘛?
作者:
1739592000
時(shí)間:
2018-6-13 19:34
很棒的程序
作者:
gogo65849
時(shí)間:
2018-12-19 16:44
謝謝分享
作者:
yjys
時(shí)間:
2022-5-22 18:59
為啥顯示The project could not be opened
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1