直流电机wm控制程序设计.doc
《直流电机wm控制程序设计.doc》由会员分享,可在线阅读,更多相关《直流电机wm控制程序设计.doc(15页珍藏版)》请在沃文网上搜索。
1、直流电机PWM控制程序设计引 言目前各种控制系统、通信系统、网络系统、仪器仪表等都以微处理器为核心。几十年来,随着大规模集成电路技术的不断发展,微处理器的性能越来越高、体积越来越小、系列越来越多。微处理器从过去单纯的中央处理单元,发展到将众多外围设备集成到片内形成单片机,由过去的8位机,发展到16位、32位机。 由于大规模集成电路技术的突破,DSP控制器的价格已和普通单片机接近,但其性能远远超过了普通单片机。DSP控制器由DSP(Digital Signal Processor,数字信号处理器)发展而来,其突出特点就是采用多组总线技术实现并行机构,有独立的加法器和乘法器,有灵活的寻址方式,从而
2、可以非常快速地实现复杂算法。14直流电机PWM控制程序设计目 录课程设计任务书II直流电机PWM控制程序设计III引 言V1设计任务描述11.1设计题目11.2设计目的21.3设计要求21.4发挥部分22 设计思路23 设计方框图34 各部分程序设计44.1头文件44.2 初始化54.3 使能64.4定时器T3设置64.5 PWM与PIE设置75工作过程分析86 设计程序9小 结11致 谢12参考文献131设计任务描述1.1设计题目直流电机PWM控制程序设计1.2设计目的(1)掌握Launch Code Composer Studio使用方法。(2)掌握直流电机PWM控制原理。(3)学会用C语
3、言编写程序。1.3设计要求(1)研究直流电机PWM控制及利用DSP实现的方法。 (2)编写直流电机控制程序。(3)调试程序,观察结果。1.4发挥部分 自由发挥2 设计思路 用定时器设置周期中断,作为PWM的频率,比较寄存器里边设置两组数,作为PWM的脉宽。当定时器中断次数达到某个值时,可以改变比较寄存器中的值,从而改变PWM的脉宽,即改变高低电平的占空比,进而改变电动机的转速。令此程序循环进行下去就能实现电动速度的连续变化。程序的流程为首先进行初始化,并使能定时器中断,通过对程序的不断调用与循环来实现电机转速的连续调节 3 设计方框图程序初始化设定时钟频率选择复用引脚禁止看门狗定时器中断使能比
4、较寄存器PWM外接硬件电路4 各部分程序设计4.1头文件 #include DSP281x_Device.h /DSP281x头文件 DSP281x头文件包括很多子文件: #include DSP281x_SysCtrl.h / System Control/Power Modes #include DSP281x_DevEmu.h / Device Emulation Registers #include DSP281x_Xintf.h / External Interface Registers #include DSP281x_CpuTimers.h / 32-bit CPU Timer
5、s #include DSP281x_PieCtrl.h / PIE Control Registers #include DSP281x_PieVect.h / PIE Vector Table #include DSP281x_Spi.h / SPI Registers #include DSP281x_Sci.h / SCI Registers #include DSP281x_Mcbsp.h / McBSP Registers #include DSP281x_ECan.h / Enhanced eCAN Registers #include DSP281x_Gpio.h / Gene
6、ral Purpose I/O Registers #include DSP281x_Ev.h / Event Manager Registers #include DSP281x_Adc.h / ADC Registers #include DSP281x_XIntrupt.h / External Interrupts #include DSP281x_DefaultISR.h / DefaultISR4.2 初始化 void gptimer3_init(void); /T3初始化程序 void interrupt gptimer3_isr(void); /T3中断服务程序 void De
7、lay(unsigned int nTime); #define CTRGR * (int * )0x108000 /试验控制板参数 #define CTRGR * (int * )0x108007 unsigned int nCount; unsigned int datacnt,data2=0x4E,0x9B;/1-alpha=0.4;0.8,T3PR=0xC2=194/data中的值为PWM波形中保持低电平的时间,/可通过改变data中的值来改变PWM波形占空比void main(void)InitSysCtrl(); /系统初始化,PLL,时钟频率150MHz, /使能外设时钟,禁止W
8、DEALLOW;SysCtrlRegs.HISPCP.all=0x0003; /高速时钟的工作频率HSPCLK=25MHzEDIS;CTRGR=0x80; /初始化ICETEK-CTR实验板,使能电动机,关闭指示灯CTRGR=0x0; CTRGR=0x80;CTRGR=0; /关闭实验控制板东西方向的交通灯CTRGR=0x40; /关闭实验控制板南北方向的交通灯CTRGR=0xC0;CTRGR=0x81; /使能电动机EALLOW;4.3 使能 InitSysCtrl(); /系统初始化,PLL,时钟频率150MHz, /使能外设时钟,禁止WD CTRGR=0x81; /使能电动机 EvbRe
9、gs.COMCONB.all=0xA600; /使能比较输出PWM11EvbRegs.EVBIMRA.bit.T3PINT=1; /使能定时器3的周期中断EINT; /开总中断 4.4定时器T3设置for(;); /死循环,等待定时器3周期中断的产生void interrupt gptimer3_isr(void) /T3中断服务程序 nCount+;if (nCount=1000) nCount=1; datacnt+; if (datacnt=2) datacnt=0; EvbRegs.CMPR6=datadatacnt;EvbRegs.EVBIMRA.bit.T3PINT=1; /使能定
10、时器3的周中断EvbRegs.EVBIFRA.bit.T3PINT=1; /写1清除定时器1的周中断标志PieCtrlRegs.PIEACK.all=PIEACK_GROUP4; /清零PIEACK的第4组中断对于对应位(08)void gptimer3_init(void) /定时器T3中初始化程序EvbRegs.GPTCONB.all=0x0000; /无事件启动ADCEvbRegs.T3CON.all=0x1742; /T3连续增计数模式,128分频,使能比较,打开定时器EvbRegs.T3PR=0xc2; /定时器3周期=(T3PR+1)* 128/25 MHz=1ms /即产生的定频
11、PWM波形的频率位1kHzEvbRegs.T3CNT=0; /定时器计数器初值,从0开始计数EvbRegs.EVBIMRA.bit.T3PINT=1; /使能定时器3的周期中断EvbRegs.EVBIFRA.bit.T3PINT=1; /写1清除定时器1的周期中断标志4.5 PWM与PIE设置unsigned int datacnt,data2=0x4E,0x9B; /1-alpha=0.4;0.8,T3PR=0xC2=194 /data中的值为PWM波形中保持低电平的时间, /可通过改变data中的值来改变PWM波形占空比GpioMuxRegs.GPAMUX.all=0x0000; /PWM
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 直流电机 wm 控制程序 设计