资源简介
基于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.jli
文件 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个文件信息
- 上一篇:knime预测股票价格的
- 下一篇:WMS仓储管理系统流程图
相关资源
- ok6410按键驱动
- 基于ARM的RFID门禁管理系统设计报告
- ARM_Linux嵌入式系统在农业大棚中的应
- 基于arm平台的MP3播放器
- arm板上实现usb摄像头采集及显示(q
- tcp文件传输220091
- 32位ARM的ALU设计基于FPGA
- QT闹钟alarm
- 基于ARM7的GPRS程序代码
- arm-linux-gcc-4.3.2交叉编译
- 基于arm的网络视频监控系统
- ARM LINUX 进程间通讯 共享内存
- FriendlyARM 友善之臂 USB驱动 WIN7_64
- 3G模块在ARM开发板上实现ppp拨号上网
- 现代谱估计SVD-TLSARMA最小二乘方法
- S3C2440资料3时钟控制器,电源
- dsp2812控制直流无刷电机调速程序
- ws.hbang.newterm2_2.0_iphoneos-arm[1249].deb
- strace-fix-arm-bad-syscall.patch
- ARM&linux嵌入式系统教程每章答案-马忠
- ARM嵌入式系统源程序-游蛇吃豆
- ARM嵌入式系统源程序-井字棋
- ADS1.2-ARM集成开发环境链接
- keil uVision4 for ARM Cortex-M3 使用汇编
- NXPARM--ISP 软件 NXP_LPC_ISPV12 汉化
- pycharm-professional-2018.1.3.tar.gz
- qt-everywhere-opensource-src-5.6.0.tar.gz
- linux,windosarm 三版本lcx
- 基于ARM嵌入式系统的交通灯设计
- 在ARM9和ARMLinux下利用QT编写的实时数据
评论
共有 条评论