⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 F2812实现电机控制源程序.rar
💻 C
字号:
/*********************************************************************
**	Module Name:		STEP-MOTOR 				    				**
**	Author:				Cbq  			    						**
**	Version:			1.0			    							**
**	CreateDate:			2008-05-19		    						**
**	Description:		            			    				**
**	Remark:				Huozq		    							**
**	Revision History:	2008-11-10			    					**
**********************************************************************/

/*********************************************************************
**	实验目的:理解DSP控制步进电机原理                                **
**	实验说明:由DSP输出的PWM3~6做为步进电机的4个信号线输入,这里我们  **
**           只选用PWM的IO口.                                       **
**	实验结果:步进电机能够起转,方向可通过我们下面程序来控制.延时不能 **
**           太长,否则转得太慢,延时也不能太短,否则频率太高不起转。**
**********************************************************************/


#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"


#define	  SetPWM3	GpioDataRegs.GPADAT.bit.GPIOA2 = 1
#define	  ClrPWM3   GpioDataRegs.GPADAT.bit.GPIOA2 = 0
#define	  SetPWM4	GpioDataRegs.GPADAT.bit.GPIOA3 = 1
#define	  ClrPWM4   GpioDataRegs.GPADAT.bit.GPIOA3 = 0
#define	  SetPWM5	GpioDataRegs.GPADAT.bit.GPIOA4 = 1
#define	  ClrPWM5   GpioDataRegs.GPADAT.bit.GPIOA4 = 0
#define	  SetPWM6	GpioDataRegs.GPADAT.bit.GPIOA5 = 1
#define	  ClrPWM6   GpioDataRegs.GPADAT.bit.GPIOA5 = 0
void delay(unsigned int t);

void main(void)
{    

	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	

    /*初始化GPIO*/
	InitGpio();
    
    /*初始化IO初始状态*/
    ClrPWM3;
    ClrPWM4;
    ClrPWM5;
    ClrPWM6;
    
	for(;;)
	{
		//顺时针转

     	SetPWM3;
     	delay(50);
     	ClrPWM3;
     	delay(10);
     
     	SetPWM4;
     	delay(50);
     	ClrPWM4;
     	delay(10);
     
     	SetPWM5;
     	delay(50);
     	ClrPWM5;
     	delay(10);
     
     	SetPWM6;
     	delay(50);
     	ClrPWM6;
     	delay(10);//*/

		/*反时针转
		
	 	SetPWM6;///第4路脉宽驱动,下同
     	delay(50);
     	ClrPWM6;
     	delay(10);
     
      	SetPWM5;
     	delay(50);
     	ClrPWM5;
     	delay(10);

    	SetPWM4;
     	delay(50);
     	ClrPWM4;
     	delay(10);

	 	SetPWM3;
     	delay(50);
     	ClrPWM3;
     	delay(10);*/
     
 
	}

} 	

/*注意这里的延时*/
void delay(unsigned int t)
{
 	unsigned int a,b;
   		for(a=0;a<t;a++)
      		for(b=0;b<1200;b++);
}


//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -