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 + -
显示快捷键?