📄 zdjy._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 + -