资源简介

基于k60的一级旋转倒立摆成功 自试成功 全国大学生电子竞赛经典题目之一

资源截图

代码片段和文件信息

                      /*              VisenYang            */
                      /*           Upgrade:2016-6-28       */
                      /*              端口定义             */
                      /*电机:                             */
                      /*    MOTOR1_PWM  FTM_CH3 -> PTA6    */
                      /*    MOTOR2_PWM  FTM_CH4 -> PTA7    */
                      /*角度传感器:                       */
                      /*   ADC1_SE16  ->  1SE16            */
                      /*编码器:                           */
                      /*FTM1_A -> PTA12 FTM1_B -> PTA13    */
                      /*编码器   逆时针正  顺时针负        */
                      /*角度传感器  逆时针减小 顺时针增大  */

# 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;//电机转速

int16 PWM = 0;//最终占空比
int16 val=0;//定义电机转速积分经过低通滤波

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结构体定义
*******************************************************************************/
 struct Speed_PID
{
  int16 Last_Speed;//定义上一次速度
  int16 Error_Now;//定义现在速度偏差
  int16 Error_Next;//定义上一次偏差
  int16 Error_Last;//定义上上次偏差
  float Speed_KPSpeed_KISpeed_KD;//定义PID参数
  int16 integral_Voltage;//定义电机转速积分
  int16 SPEED_PWM;//定义速度偏差补偿占空比
}sp;

 struct Angle_PD
{
  int16 Set_Angle;//期望角度
  int16 Real_Angle;//实际角度
  int16 Error_Now;//现在偏差
  int16 Error_Next;//上一次偏差
  float Angle_KPAngle_KIAngle_KD;//PD参数
  int16 ANGLE_PWM;//定义角度偏差补偿占空比
}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);
    
    //初始化电机正转*****精度为100
    ftm_pwm_init(FTM0FTM_CH310*10000);//PTA6
    ftm_pwm_init(FTM0FTM_CH410*10000);//PTA7   
    // port_cfg.h 里配置 FTM0_CH3 对应为 PTA6
    // 使能端输入为 0
    
    //定时中断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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           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个文件信息

评论

共有 条评论