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

📄 stepper.c

📁 该源码是创维特ARM7 JX44B0X板的例子程序
💻 C
字号:
#include <stdio.h>#include <sys/time.h>#include <signal.h>#include "../include/44b.h"#define STEP_INTERVALE                          0x40#define STEPER_VALUE_MIN                        0x40#define STEPER_VALUE_MAX                        0x1000                                                                                       #define STEPER_MOTOR_ENABLE         1#define STEPER_MOTOR_DISABLE        0#define STEPER_MOTOR_CLOCKWISE      0#define STEPER_MOTOR_ANTICLOCKWISE  1                                                                                       #define true                                            1#define false                                           0                                                                                       #define STEPER_ENABLE                           0x01#define STEPER_SINGLE                           0x02#define STEPER_REVERSE                          0x04                                                                                       #define MIN_STEPER_PLUSE_FREQ           0x300#define MAX_STEPER_PLUSE_FREQ           0x100000#define GEN_PLUSE_HIGH()                        {rPDATC |= (1<<11);}#define GEN_PLUSE_LOW()                         {rPDATC &= (~(1<<11));}static int steper_control_mask = 0xf8;int port_con_c, port_up_c;void stepper_control(int benable){	if(benable == STEPER_MOTOR_ENABLE)        {                steper_control_mask |= (1<<3);                *(unsigned char *)0x0a000006 = steper_control_mask;        }        else        {                steper_control_mask &= (~(1<<3));                *(unsigned char *)0x0a000006 = steper_control_mask;        }}void stepper_set_direct(int direct){        if(direct == STEPER_MOTOR_CLOCKWISE)        {                steper_control_mask |= (1<<2);                *(unsigned char *)0x0a000006 = steper_control_mask;        }        else        {                steper_control_mask &= (~(1<<2));                *(unsigned char *)0x0a000006 = steper_control_mask;        }}static int pulse_direct = 1;static int stepper_speed = 1;void pulse_timer(int signo){	if(pulse_direct <= 0)	{        	GEN_PLUSE_LOW();        	GEN_PLUSE_HIGH();		pulse_direct = stepper_speed;	}		pulse_direct --;} void stepper_speedup(){	stepper_speed --;	if(stepper_speed <= 0)		stepper_speed = 1;}void stepper_speeddown(){        stepper_speed ++;        if(stepper_speed >= 100)                stepper_speed = 100;}void stepper_setspeed(int speed){	if(speed <= 100 && speed >= 1)		stepper_speed = speed;}void stepper_init(){        port_con_c = rPCONC;        port_up_c = rPUPC;                                                                                               // config the port c        rPCONC  |= (1 << 22);        rPUPC   |= (1 << 11);                                                                                               stepper_control(STEPER_MOTOR_ENABLE);        stepper_set_direct(STEPER_MOTOR_CLOCKWISE);}                                                                                       void stepper_uninit(){        rPCONC = port_con_c;        rPUPC  = port_up_c;}

⌨️ 快捷键说明

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