motorctrl.c

来自「2410开发板上电机转动控制的源代码」· C语言 代码 · 共 40 行

C
40
字号
//#include "..\startup\44b.h"
#include "inc/MotorCtrl.h"
#define PCLK (50700000)
#define MOTOR_SEVER_FRE		1000		//20kHz

#define MOTOR_CONT				(PCLK/2/2/MOTOR_SEVER_FRE)
#define MOTOR_MID				(MOTOR_CONT/2)
#define rTCFG0  (*(volatile unsigned *)0x51000000)
#define rTCFG1  (*(volatile unsigned *)0x51000004)
#define rTCNTB0  (*(volatile unsigned *)0x5100000C)
#define rTCMPB0  (*(volatile unsigned *)0x51000010)
#define rTCON  (*(volatile unsigned *)0x51000008)
#define rGPBCON  (*(volatile unsigned *)0x56000010)
#define rGPBUP  (*(volatile unsigned *)0x56000018)
#define rGPBDAT  (*(volatile unsigned *)0x56000014)

void init_MotorPort()
{   rGPBCON=rGPBCON&0x3ffff0|0xa;
   
   
    
	//Dead Zone=24, PreScalero1=2;
	rTCFG0=(0<<16)|2;

	//divider timer0=1/2;
	rTCFG1=0;

	rTCNTB0= MOTOR_CONT;
	rTCMPB0= MOTOR_MID;
		
	rTCON=0x2;		//update mode for TCNTB0 and TCMPB0.
	rTCON=0x19;		//timer0 = auto reload, start. Dead Zone
}

void SetPWM(int value)
{
	rTCMPB0= MOTOR_MID+value;
	
}

⌨️ 快捷键说明

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