• 大小: 254KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: ARM  Cortex-M3  例程  LM3S  

资源简介

基于TI的群星系列ARM Cortex-M3芯片的,直流无刷电机控制程序,包含实验实测速度控制曲线。

资源截图

代码片段和文件信息

#include  “systemInit.h“
#include  “uartGetPut.h“
#include “pwm.h“
#include 
#include 
#include  “stdio.h“
#include 
#include 

//  定义LED
#define  LED_PERIPF             SYSCTL_PERIPH_GPIOF
#define  LED_PORT               GPIO_PORTF_base
#define  LED_PIN                GPIO_PIN_2
#define  LED_PIN3                GPIO_PIN_3



//  定义KEY
#define  KEY_PERIPH             SYSCTL_PERIPH_GPIOG
#define  KEY_PORT               GPIO_PORTG_base
#define  KEY_PIN                GPIO_PIN_5

#define ulVelocitySampleTime 20*20000 //速度采样时间参数,用于Timer3定时20000代表1ms
#define fDutyMax 99
#define DeadareaTime 1        //死区时间,即延长切换场效应管的时间

void PWMControlNegtive(float fDuty);
void PWMControlPostive(float fDuty);
void GPIO_Port_E_ISR(void);
void GetVelocity(void);
void GetPosition(void);
void Timer3A_ISR(void);
void PIDVelocity(float TargetVelocity);
void PIDPosition(float TargetPosition);
void Decode(char *sint inum);

tBoolean TargetDirection=true;
int Direction;
float fDuty=20;
int iDuar=1000;
int iHALLiOldHALL=0;//霍尔的状态
int iFlagHallChanged=0;//霍尔状态改变标志,1为改变
int iEncoderLine=1292;//码盘线数
float Velocity=0TargetVelocity=2;
tBoolean FlagPositionMode= false;//工作模式标志 true为位置模式 false则为速度模式
long Position=0TargetPosition=60000;//位置
unsigned long HALLInterruptTimes=0OldHALLInterruptTimes=0;//记录进入HALL中断的次数,以便获得点电机速度和位置
//unsigned long ulVelocitySampleTime;
float e_k=0e_k1=0e_k2=0;
float e_k_p=0e_k1_p=0e_k2_p=0e_k_p_sum=0;
float fk_p=30fk_i=0fk_d=4;//速度PID参数
float fk_p_p=300fk_i_p=200fk_d_p=500;//位置PID参数
float control=0control_1=0dcontrol=0;
float control_p=0control_1_p=0dcontrol_p=0;

//  主函数(程序入口)
int main(void)
{
    int iReceiveNum;
    char cBuf[100]cBuf2[50];

    //jtagWait();                                             //  防止JTAG失效,重要!
    clockInit();                                            //  时钟初始化:晶振,6MHz
    uartInit0();
    
   
    //初始化PWM
    SysCtlPeriEnable(SYSCTL_PERIPH_GPIOG); 
    SysCtlPeriEnable(SYSCTL_PERIPH_GPIOF); 
    SysCtlPeriEnable(SYSCTL_PERIPH_GPIOH); 
                                       
    SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);                            /*  使能PWM模块                 */
    SysCtlPWMClockSet(SYSCTL_PWMDIV_1);                                   /*  PWM时钟配置:不分频         */
    
    GPIOPinTypePWM(GPIO_PORTG_base                                       /*  PG2和PG3配置为PWM功能       */
                   GPIO_PIN_2 | GPIO_PIN_3);
    GPIOPinTypePWM(GPIO_PORTF_base                                       /*  PF2和PF3配置为PWM功能       */
                   GPIO_PIN_2 | GPIO_PIN_3);
    GPIOPinTypePWM(GPIO_PORTH_base                                       /*  PH0和PH1配置为PWM功能       */
                   GPIO_PIN_0 | GPIO_PIN_1);

    
    PWMGenConfigure(PWM_base PWM_GEN_0             /*  配置PWM发生器0:减计数    */
                    PWM_GEN_MODE_UP_DOWN  | PWM_GEN_MODE_NO_SYNC);
    PWMGenConfigure(PWM_BA

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7856  2011-09-19 20:11  直流无刷电机控制程序\Debug\Exe\Demo.bin

     文件     144768  2011-09-19 20:11  直流无刷电机控制程序\Debug\Exe\Demo.out

     文件       7899  2010-10-27 12:59  直流无刷电机控制程序\Debug\Exe\Demo.sim

     文件      22287  2011-09-19 20:11  直流无刷电机控制程序\Debug\List\Demo.map

     文件        435  2011-09-19 20:11  直流无刷电机控制程序\Debug\Obj\Demo.pbd

     文件      55152  2011-09-19 20:11  直流无刷电机控制程序\Debug\Obj\main.o

     文件       8328  2010-08-14 14:17  直流无刷电机控制程序\Debug\Obj\startup_ewarm.o

     文件       6368  2010-08-12 19:50  直流无刷电机控制程序\Debug\Obj\systemInit.o

     文件      35180  2010-08-17 20:42  直流无刷电机控制程序\Debug\Obj\uartGetPut.o

     文件       6014  2011-09-19 20:11  直流无刷电机控制程序\Demo.dep

     文件      37925  2010-07-18 21:07  直流无刷电机控制程序\Demo.ewd

     文件      43301  2010-08-12 19:50  直流无刷电机控制程序\Demo.ewp

     文件        158  2008-07-02 15:19  直流无刷电机控制程序\Demo.eww

     文件      28936  2011-09-19 20:11  直流无刷电机控制程序\main.c

     文件       2531  2011-09-19 20:11  直流无刷电机控制程序\settings\Demo.cspy.bat

     文件       6046  2011-09-19 20:11  直流无刷电机控制程序\settings\Demo.dbgdt

     文件        551  2011-09-19 20:11  直流无刷电机控制程序\settings\Demo.dni

     文件       5355  2011-09-19 20:11  直流无刷电机控制程序\settings\Demo.wsdt

     文件        248  2010-03-06 19:09  直流无刷电机控制程序\settings\Demo_Debug.jlink

     文件       9246  2010-08-14 14:15  直流无刷电机控制程序\startup_ewarm.c

     文件       1729  2010-08-09 16:35  直流无刷电机控制程序\systemInit.c

     文件        749  2008-10-27 14:54  直流无刷电机控制程序\systemInit.h

     文件       5975  2010-08-17 20:42  直流无刷电机控制程序\uartGetPut.c

     文件        792  2010-07-13 15:16  直流无刷电机控制程序\uartGetPut.h

     文件     879334  2010-08-15 09:36  直流无刷电机控制程序\实验图\kp16ki10kd90.bmp

     文件     909430  2010-08-18 19:13  直流无刷电机控制程序\实验图\KPKIKD100-0-100.bmp

     文件     909430  2010-08-18 19:18  直流无刷电机控制程序\实验图\KPKIKD100-0-200.bmp

     文件     909430  2010-08-18 22:00  直流无刷电机控制程序\实验图\KPKIKD100-0-200采样周期40ms.bmp

     文件     909430  2010-08-18 19:22  直流无刷电机控制程序\实验图\KPKIKD100-0-300.bmp

     文件     909430  2010-08-18 21:38  直流无刷电机控制程序\实验图\KPKIKD100-0-300采样周期40ms.bmp

............此处省略43个文件信息

评论

共有 条评论