📄 test_dc_motor.c
字号:
/****************************************************************************
【文 件 名 称】main.c
【功 能 描 述】三星S3C2410A板demo程序代码
【程 序 版 本】4.0
【创建人及创建日期】icesoar//2002年11月19日19:26
【修改人及修改日期】icesoar//2004-12-8 17:25
****************************************************************************/
//***************************************************************************
#include "def.h"
#include "2410addr.h"
#include "config.h"
#include "board.h"
#include "utils.h"
#define MOTOR_PWM_FREQ 2000
/****************************************************************************
【功能说明】系统主函数
****************************************************************************/
static void Set_PWM3(U32 ratio)
{
if(!ratio)
{
rGPBCON &= ~(3<<6);
rGPBCON |= 1<<6; //output 0
rGPBDAT &= ~(1<<3);
return;
}
rGPBCON &= ~(3<<6);
rGPBCON |= 2<<6; //TOUT3
rTCON = rTCON & (~(0xf<<16)) ; // clear manual update bit, stop Timer3
// rTCFG0 &= 0xffff00ff; // set Timer 2,3,4 prescaler
rTCFG1 &= 0xffff0fff; // set Timer 2 MUX 1/8
rTCFG1 |= 0x00002000; // set Timer 2 MUX 1/8
rTCNTB3 = ( GetMasterClock() )/( MOTOR_PWM_FREQ *16 ); //if set inverter off, when TCNT2<=TCMP2, TOUT is high, TCNT2>TCMP2, TOUT is low
rTCMPB3 = ( rTCNTB3*(100-ratio))/100 ; //if set inverter on, when TCNT2<=TCMP2, TOUT is low, TCNT2>TCMP2, TOUT is high
rTCON = rTCON & (~(0xf<<16)) | (0x0e<<16) ;
//自动重装,输出取反关闭,更新TCNTBn、TCMPBn,死区控制器关闭
rTCON = rTCON & (~(0xf<<16)) | (0x0d<<16) ; //开启背光控制
}
void Test_DC_Motor(void)
{
U16 HiRatio = 50;
printf( "直流电机控制实验,按+/-键控制电机转速\n" ) ;
Set_PWM3(HiRatio);
while( 1 )
{
U8 key;
key = getch();
putch( key );
if( key == '+' )
HiRatio += (HiRatio<95)?5:(100-HiRatio);
if( key == '-' )
HiRatio -= (HiRatio>=5)?5:HiRatio;
if( key == ESC_KEY ) break ;
Set_PWM3(HiRatio);
printf( "Now HI-Ratio is %d%%\n", HiRatio) ;
}
printf( "\n" ) ;
rTCON = rTCON & (~(0xf<<16)) ; // clear manual update bit, stop Timer3
rGPBCON &= ~(3<<6);
rGPBCON |= 1<<6; //output 0
rGPBDAT &= ~(1<<3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -