📄 test_stepmotor.c
字号:
/****************************************************************************
【文 件 名 称】Test_StepMotor.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 StepMotor_Address *(volatile U16 *)( 0x38001000 ) //nGCS7
//***************************************************************************
/****************************************************************************
** 函数名称: Motor_Delay
** 功能描述: 短软件延时
** 输 入: j : 延时参数,值越大时延时越久
****************************************************************************/
void Motor_Delay( U16 j )
{
U16 k, l ;
for(l=0;l<=j;l++)
for(k=0;k<=1500;k++);
}
/****************************************************************************
【功能说明】步进电机实验程序
****************************************************************************/
void Step_Motor( U16 delay, U8 m )
{
if( m > 0 )
{
StepMotor_Address = 0x01 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x02 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x04 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x08 ; //StepMotor output
Motor_Delay( delay ); //延时
}
else
{
StepMotor_Address = 0x08 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x04 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x02 ; //StepMotor output
Motor_Delay( delay ); //延时
StepMotor_Address = 0x01 ; //StepMotor output
Motor_Delay( delay ); //延时
}
}
/****************************************************************************
【功能说明】步进电机实验程序
****************************************************************************/
void Test_StepMotor(void)
{
U16 m ;
U8 p ;
U16 MOTOR_DELAY_TIME = 100 ;
printf( "S3C44B0X Step Motor TEST, press ESC key to exit !\n" ) ;
printf( "Press '+' or '-' to increase or decrease the speed, 't' to reverse\n" ) ;
while( (m=getkey())!=ESC_KEY )
{
if( m != 0 )
{
if( m == 't' )
{
p = !p ;
printf( "Turn on is reverse!\n" ) ;
}
else
{
if( m == '+' ) MOTOR_DELAY_TIME+=5 ;
if( m == '-' ) MOTOR_DELAY_TIME-=5 ;
if( MOTOR_DELAY_TIME<50 ) MOTOR_DELAY_TIME = 50 ;
if( MOTOR_DELAY_TIME>1000 ) MOTOR_DELAY_TIME = 1000 ;
printf( "DelayTime = %d\n", MOTOR_DELAY_TIME ) ;
}
}
Step_Motor( MOTOR_DELAY_TIME, p ) ;
}
StepMotor_Address = 0x00 ; //StepMotor output
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -