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

📄 pwm 电机控制实验.txt

📁 是一个比较好的dsp教程
💻 TXT
字号:
//Main.c
//PWM电机控制程序,正反转,默认设置的工作频率1kHz
#include "global.c" 
void SystemInit();
void PWM_Init() ; 
void KickDog();  

int numled0=200;   
unsigned int t0=0; 
unsigned int XPWM=0;  


main()
{  

   SystemInit();         	//系统初始化
   
   MCRA=MCRA & 0xC0FF; 	    //IOPB0-6设为IO口模式
   PBDATDIR=0xFFC2;   	    //所有LED=0 
   PBDATDIR=PBDATDIR |0x003D;  //所有LED=1     
    
   XPWM=2400;                 //设置初始值为2400,但最大值不要超过2500 
   							//when xpwm=0~900,逆时针方向旋转,值越小,转速越快
   							when xpwm=1600~2500,顺时针方向旋转,值越大,转速越快
   						when xpwm=900~1600,电机两端电压太低,基本上不足以起转
   PWM_Init() ;          	//定时器初始化
   asm(" CLRC INTM ");
   while(1);
   
}

void SystemInit() 
{  
 
	asm(" SETC	INTM ");	//关闭总中断 
	asm(" CLRC  SXM  ");	// 禁止符号位扩展 
	asm(" CLRC  CNF  ");    // B0块映射为 on-chip DARAM
	asm(" CLRC  OVM  ");    // 累加器结果正常溢出
	SCSR1=0x83FE;         	// 系统时钟CLKOUT=20*2=40M 
							// 打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟CLKOUT=40M */
	WDCR=0x006F;			// 禁止看门狗,看门狗时钟64分频 
	KickDog();    			// 初始化看门狗   
    IFR=0xFFFF;				// 清除中断标志 
    IMR=0x0002;				// 打开中断2     
    
}  

void PWM_Init()           
{ 
    MCRA=MCRA | 0x00C0;		//PA6-PA7为PWM口
    EVAIFRA=0xFFFF;			//  清除中断标志 
    ACTRA=0x0006;           //PWM1,2低有效    
    DBTCONA=0x0530;			//使能死区定时器1,分频40M/16=2.5M,死区时间5*0.4us=2us  
    T1PR=2500;				//定时器1周期值,定时0.4us*2500=1ms   
    CMPR1=XPWM;              //比较值
	COMCONA=0xA600;         //比较控制寄存器
	T1CNT=0; 	
	EVAIMRA=0x0080;			//定时器1周期中断使能  
	T1CON=0x144E;           //增模式, TPS系数40M/16=2.5M,T1使能,  
				
}  


void c_int2()               //定时器1中断服务程序
{

    if(PIVR!=0x27)
		{  	asm(" CLRC INTM ");
			return;
		}
	T1CNT=0; 
	t0++;
	numled0--;
	if(numled0==0)
	{
		numled0=2000;
		if((PBDATDIR & 0x0001)==0x0001) 
			PBDATDIR=PBDATDIR & 0xFFFE;    	//IOPB0=0;LED灭  
		else
			PBDATDIR=PBDATDIR |0x0101;     	//IOPB0=1;LED亮 
	}

	EVAIFRA=0x80;
 
	asm(" CLRC	INTM ");   
	
}  

void KickDog()				//踢除看门狗 
{
	WDKEY=0x5555;
	WDKEY=0xAAAA;
}

⌨️ 快捷键说明

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