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

📄 zdjy._h

📁 这段程序是步进电机的细分驱动程序
💻 _H
字号:
#define uchar  unsigned char
#define ushort unsigned short
#define uint   unsigned int 
#define ulong  unsigned long

#define D12_DATA 		0
#define D12_COMMAND 	1

#define SWAP(x)   		((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
#define MSB(x)    		(((x) >> 8) & 0xFF)

#define USB_DATA        (*(volatile unsigned char *) 0x0000)
#define USB_COMMAND     (*(volatile unsigned char *) 0x0001)	

#define ARM_GODOWN  PIND^2
#define  LED  PORTF^2 
#define  USB_RESET    PORTD&0X02

typedef struct  receiver
   {
     uchar   mission_number;      //任务编号
	 uchar   strat_number;        //盘号 1--30
	 uchar   muster_volume;       //进样量     0--50UL
	 uchar   clear_time;          //清洗时间   1--10S
	 uchar   clear_select;        //清洗选择(0加酸  1正常  2推拉)
	
   }RECEIVER;	

typedef struct  Test_Motor
	{  
		uchar place_number;	               //0 标样杯位置,1样品杯位置,2钨舟位置,3钨舟高度。    
		uchar  recoup_value;               //误差数值           0-255
		uchar  water_pump;		           //水阀状态           1开,0关。 
		uchar  air_pump;                   //气阀状态           1开,0关。
		uchar  init_place;		          //0清洗杯位置,1标液位置,2样品位置,3钨舟位置
		uchar  armup_down;                //升降臂0上升,1下降
		uint   setp_num;                  //生降臂步数
	    uchar   add_sub;                  //误差加减
	}  TEST_MOTOR;

typedef struct _device_request
	{
		uchar bmRequestType;
		uchar bRequest;
		ushort wValue;
		ushort wIndex;
		ushort wLength;
	}  DEVICE_REQUEST;

typedef struct _control_xfer
	{ 
		DEVICE_REQUEST DeviceRequest;	 
		ushort wLength;
		ushort wCount;
		uchar * pData;
		uchar dataBuffer[8];
	} CONTROL_XFER;
	
unsigned char H1DACData[]={ 63,  62,  61,  60,  59,  58,  57,  56,  55,  54,  53,  52,  51,  50,  49,  48, 
                                  47,  46,  45,  44,  43,  42,  41,  40,  39,  38,  37,  36,  35,  34,  33,  32, 
                                  31,  30,  29,  28,  27,  26,  25,  24,  23,  22,  21,  20,  19,  18,  17,  16, 
                                  15,  14,  13,  12,  11,  10,   9,   8,   7,   6,   5,   4,   3,   2,   1,   0, 
                                   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15, 
                                  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31, 
                                  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47, 
                                  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63, 
                                  63,  62,  61,  60,  59,  58,  57,  56,  55,  54,  53,  52,  51,  50,  49,  48, 
                                  47,  46,  45,  44,  43,  42,  41,  40,  39,  38,  37,  36,  35,  34,  33,  32, 
                                  31,  30,  29,  28,  27,  26,  25,  24,  23,  22,  21,  20,  19,  18,  17,  16, 
                                  15,  14,  13,  12,  11,  10,   9,   8,   7,   6,   5,   4,   3,   2,   1,   0, 
                                   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15, 
                                  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31, 
                                  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47, 
                                  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63};

unsigned  char  H2DACData[]={192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 
                                 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 
                                 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 
                                 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 
                                 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 
                                 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 
                                 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 
                                 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 
                                   0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15, 
                                  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31, 
                                  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47, 
                                  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63, 
                                 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 
                                 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100,  99,  98,  97,  96, 
                                  95,  94,  93,  92,  91,  90,  89,  88,  87,  86,  85,  84,  83,  82,  81,  80, 
                                  79,  78,  77,  76,  75,  74,  73,  72,  71,  70,  69,  68,  67,  66,  65,  64};

uchar MainBuf[64];
uchar SendFlag;
uchar TxdBuf[16];
uchar RxdBuf[16];
uchar StepNum[4];

uchar ArmState;//转臂的状态。0表示初始位(清洗位),1表示钨舟位,2表示样品盘位	

	
uchar setup_packet;
uchar remote_wakeup;
uchar configuration;

uchar control_state;
uchar bNoRAM;
uchar num;
uchar WorkObjectFlag;
uchar ReceiveLen;
uint  DelayLen;

uchar  oldplate_number=1,plate_sport;
uchar  g[8];
uchar  Work_flag=0,over_flag=0,debug_flag=0,reset_flag=0;
uchar  by_value=0,yp_value=0,wz_value=0,free;
uint   zx_value=0;

uint   volume;
uint   clear_S;


RECEIVER  Work;
CONTROL_XFER ControlData;
TEST_MOTOR  Debugger;
uchar PlayTransaction;
uchar PlayNum;
uchar  step1[4]={31,31,0,0};

uchar DeviceDescr[] = 		//设备描述符
		{0x12,0x01,0x10,0x01,0xdc,0x00,0x00,0x10,0x71,
		 0x04,0x66,0x06,0x00,0x01,0x00,0x00,0x00,0x01};
uchar ConfigDescr[] = 		//配置描述符
		{0x09,0x02,0x2e,0x00,0x01,0x01,0x00,0xa0,0x01};
uchar InterfaceDescr[] = 	//接口描述符
		{0x09,0x04,0x00,0x00,0x04,0xdc,0xa0,0xb0,0x00};
uchar EP1_TXDescr[] = 		//端点描述符
		{0x07,0x05,0x81,0x03,0x10,0x00,0x01};
uchar EP1_RXDescr[] = 		//端点描述符		
		{0x07,0x05,0x01,0x03,0x10,0x00,0x01};
uchar EP2_TXDescr[] = 		//端点描述符
		{0x07,0x05,0x82,0x02,0x40,0x00,10};
uchar EP2_RXDescr[] =  	    //端点描述符
		{0x07,0x05,0x2,0x02,0x40,0x00,10};

void   get_status(void);
void   control_handler(void);
void   init_config(void);
void   set_feature(void);
void   set_address(void);
void   get_interface(void);
void   set_interface(void);
void   reconnect_USB(void);
void   init_unconfig(void);
void   single_transmit(uchar * pData, uchar len);
void   code_transmit(uchar * pRomData, ushort len);
void   send( uchar Len);
void   MainSend  (void);
void   port_init(void);
void   init_devices(void);   

//void   find_light (void);
void   motorstrat_right  (void);
void  motorstrat_left  (void);
void   muster_init (void);
void   one_course  (void);
void   arm_up  (void);
void   arm_down (uint down);
void   armround_init  (void);
void   plate_init  (void);
void   mustermotor_init (void); 
void   motor_right (uchar motor_number,uchar modulus, uint delaytime);
void   motor_left (uchar motor_number,uchar modulus, uint delaytime);
void   plate_round  ( uchar mewplate_number,uchar n); 
void   plate_oneround  (void);
void   mustermotor_contorl (uint any_muter,uchar updown); 

void   armround_control1(uchar initstate,uchar endstate,ulong movenum);
void   armround_move(uchar leftOrRight,uchar GuOu,ulong movenum);

  
void   armround_control (uchar m,uchar n, uchar v);
uchar  D12_Read1Endpoint(uchar endp, uchar len, uchar * buf);
void   needle_egis (void);
 void  push_air (void);
 void  armup_init  (void);
 
void   eeprom_value (void);
uchar  read_eeprom (uint  address);
void   write_eeprom  (void);
 void  armrate_change  (uint step_modulus, uchar left_right);  

⌨️ 快捷键说明

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