資源簡介
基于k60的一級旋轉(zhuǎn)倒立擺成功 自試成功 全國大學(xué)生電子競賽經(jīng)典題目之一
代碼片段和文件信息
??????????????????????/*??????????????VisenYang????????????*/
??????????????????????/*???????????Upgrade:2016-6-28???????*/
??????????????????????/*??????????????端口定義?????????????*/
??????????????????????/*電機(jī):?????????????????????????????*/
??????????????????????/*????MOTOR1_PWM??FTM_CH3?->?PTA6????*/
??????????????????????/*????MOTOR2_PWM??FTM_CH4?->?PTA7????*/
??????????????????????/*角度傳感器:???????????????????????*/
??????????????????????/*???ADC1_SE16??->??1SE16????????????*/
??????????????????????/*編碼器:???????????????????????????*/
??????????????????????/*FTM1_A?->?PTA12?FTM1_B?->?PTA13????*/
??????????????????????/*編碼器???逆時(shí)針正??順時(shí)針負(fù)????????*/
??????????????????????/*角度傳感器??逆時(shí)針減小?順時(shí)針增大??*/
#?include?
#?include?“common.h“
#define?angle???ADC0_SE11??????//?PTA8?ADC1_SE16//A8
//角度傳感器
int16?angle_var?=?0;
int16?banlace_angle=1930;
char?var?=?0;
//編碼器變量
int16?Voltage=0;//電機(jī)轉(zhuǎn)速
int16?PWM?=?0;//最終占空比
int16?val=0;//定義電機(jī)轉(zhuǎn)速積分經(jīng)過低通濾波
void?PIT0_IRQHandler(void);
void?Angle_PD_Realize(int16?angle_varint16?real_angle);
void?Speed_PID_Realize(int16?speed);
int16?PID_PWM();
void?ADC(void);
void?Init_All(void);
/*******************************************************************************
????????????????????????????????PID結(jié)構(gòu)體定義
*******************************************************************************/
?struct?Speed_PID
{
??int16?Last_Speed;//定義上一次速度
??int16?Error_Now;//定義現(xiàn)在速度偏差
??int16?Error_Next;//定義上一次偏差
??int16?Error_Last;//定義上上次偏差
??float?Speed_KPSpeed_KISpeed_KD;//定義PID參數(shù)
??int16?integral_Voltage;//定義電機(jī)轉(zhuǎn)速積分
??int16?SPEED_PWM;//定義速度偏差補(bǔ)償占空比
}sp;
?struct?Angle_PD
{
??int16?Set_Angle;//期望角度
??int16?Real_Angle;//實(shí)際角度
??int16?Error_Now;//現(xiàn)在偏差
??int16?Error_Next;//上一次偏差
??float?Angle_KPAngle_KIAngle_KD;//PD參數(shù)
??int16?ANGLE_PWM;//定義角度偏差補(bǔ)償占空比
}ag;
void?Init_All(void)
{?????
??/***************speed******************/
??sp.Error_Now?=?0;
??sp.Error_Next?=?0;
??sp.Error_Last?=?0;
??sp.Speed_KP?=?0;?????????//0.8
??sp.Speed_KI?=?0;
??sp.Speed_KD?=0;???????//0.5
??sp.SPEED_PWM?=?0;
??sp.integral_Voltage=0;
??
??/***************angle******************/
??ag.Set_Angle?=?0;
??ag.Real_Angle?=?0;
??ag.Error_Now?=?0;
??ag.Error_Next?=?0;
??ag.Angle_KP?=?0.65;??????//0.65
??ag.Angle_KD?=?4;????????//4
??ag.ANGLE_PWM?=?0;
??/**************position****************/
????//初始化FTM正交解碼
????ftm_quad_init(FTM1);???
????
????//初始化AD采集
????adc_init(ADC1_SE16);
????
????//初始化電機(jī)正轉(zhuǎn)*****精度為100
????ftm_pwm_init(FTM0FTM_CH310*10000);//PTA6
????ftm_pwm_init(FTM0FTM_CH410*10000);//PTA7???
????//?port_cfg.h?里配置?FTM0_CH3?對應(yīng)為?PTA6
????//?使能端輸入為?0
????
????//定時(shí)中斷5ms
????pit_init_ms(PIT05);
????set_vector_handler(PIT0_VECTORnPIT0_IRQHandler);
????enable_irq(PIT0_IRQn);
}
void?Angle_PD_Realize(int16?banlace_angleint16?angle_var)
{
??
??ag.Set_Angle?=?banlace_angle;
??ag.Real_Angle?=?angle_var;
??ag.Error_Now?=?ag.Set_Angle?-?ag.Real_Angl
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-06-23?15:39??App\
?????目錄???????????0??2018-06-23?13:23??App\Inc\
?????文件????????1522??2015-03-24?12:03??App\Inc\include.h
?????文件????????4433??2017-07-23?14:08??App\Inc\MK60_conf.h
?????文件?????????914??2014-10-06?04:08??App\Inc\MK60_it.h
?????文件????????5994??2016-06-29?16:28??App\Inc\PORT_cfg.h
?????文件????????6498??2018-06-23?15:39??App\main.c
?????文件???????11533??2014-10-02?15:24??App\MK60_conf.c
?????文件?????????463??2014-10-06?04:08??App\MK60_it.c
?????目錄???????????0??2018-06-23?13:23??Board\
?????目錄???????????0??2018-06-23?13:23??Board\inc\
?????文件?????????661??2015-01-26?13:58??Board\inc\VCAN_ASCII.h
?????文件????????2805??2014-09-21?22:19??Board\inc\VCAN_BMP.h
?????文件????????1765??2015-04-01?22:10??Board\inc\VCAN_camera.h
?????文件?????????943??2015-03-24?12:36??Board\inc\VCAN_computer.h
?????文件?????????209??2014-09-21?22:19??Board\inc\vcan_img2sd.h
?????文件????????2087??2014-10-09?01:07??Board\inc\VCAN_key.h
?????文件?????????336??2014-09-21?22:19??Board\inc\VCAN_key_event.h
?????文件????????5485??2015-10-15?18:40??Board\inc\VCAN_LCD.h
?????文件?????????959??2014-10-24?15:29??Board\inc\VCAN_LCD_CH.h
?????文件????????2100??2014-10-02?15:27??Board\inc\VCAN_LCD_ILI9341.h
?????文件????????4390??2014-10-02?15:27??Board\inc\VCAN_LCD_ST7735R.h
?????文件????????4390??2014-10-02?15:27??Board\inc\VCAN_LCD_ST7735S.h
?????文件?????????962??2014-10-02?15:27??Board\inc\VCAN_LED.H
?????文件????????3445??2014-10-02?15:27??Board\inc\VCAN_MMA7455.h
?????文件????????1904??2014-10-26?19:33??Board\inc\VCAN_NRF24L0.h
?????文件????????2366??2014-10-24?15:19??Board\inc\VCAN_NRF24L0_MSG.h
?????文件????????2371??2014-10-24?15:19??Board\inc\VCAN_OV7725_Eagle.h
?????文件????????4718??2014-09-21?22:19??Board\inc\VCAN_OV7725_REG.h
?????文件????????2031??2014-09-21?22:19??Board\inc\VCAN_OV7725_Wolf.h
?????文件????????1192??2014-10-02?15:27??Board\inc\VCAN_RTC_count.h
............此處省略652個(gè)文件信息
評論
共有 條評論