#ifndef __BASIC_H #define __BASIC_H #include "stm32f4xx.h" #include "math.h" #include "systick.h" #include "adc.h" #include "usart.h" #include "tim.h" #include "dac.h" #include "Safetybarrier.h" #include "spi.h" #include "motor.h" extern int num_array[22]; extern int it_100us_flag; extern int it_500us_flag; extern int it_1ms_flag; //extern int it_10ms_flag; extern int it_50ms_flag; extern int it_100ms_flag; extern int it_500ms_flag; extern int it_1s_flag; //extern int it_2s_flag; extern int mov_flag; extern int Mode_turn; //安全栅模式/电流模式切换 extern int zero_flag; //零点标志 extern uint16_t V_Channel[22]; //ADC数据组(电流值) extern uint16_t V_time_test[20]; //时间测试时保存的稳定电流值 extern unsigned char send_data[50]; //发送数据组 extern unsigned char time_data[60]; //时间 extern unsigned char Fre_data[4]; //频率 extern u8 state[20]; //安全栅状态组 extern char s; //光电开关 extern u16 Tstar[20]; //启动延时时间 extern u8 Terror[20]; //错误信号持续时间 extern u16 T_flag[20]; //时间标志 extern unsigned short SUR_DEVICE_ADDR; //PC //0x00A1; //设备 extern unsigned short OBJ_DEVICE_ADDR; //主板 //0x00B1; //PC群发 FFFF 0000 extern volatile uint16_t com3_rx_len; //接收帧数据的长度 extern volatile uint8_t com3_recv_end_flag; //帧数据接收完成标志 extern uint8_t com3_rx_buffer[10]; //接收数据缓存 extern uint8_t UART_Receive_flg; extern uint8_t UART_Receive_len; extern float temp; //温度 extern float length; //长度 extern float act_length; //实际长度 extern float zero_length; //零点位置位移数据 extern char Rate_dis; //额定距离:0-1mm 1-2mm 2-3mm 3-4mm extern char Travle_Flag; //0 直 1 角 extern char Motor_Run; //0 停止 1 运行 2 运行到起始点 3 运行到结束点 extern char Run_State; //频率测试标志 extern char Run_Mode; //0 点动 1 方案一 2 方案二 extern char Run_Dir; //0 正转 1 反转 extern unsigned int Run_Step; //电机运行步长 extern unsigned int Run_Inter; //电机运行间隔时长 extern unsigned int Set_Vol; //设定电压 extern unsigned int Motor_Fre; //转动频率 extern unsigned int Mode_Flag; //模式标志 extern unsigned int Speed; //转速 extern unsigned char get_time_flag;//时间测试开始标志 extern unsigned int Set_dis; extern float dis; extern uint16_t N; //数组计数值 extern uint32_t count; //光电变换计数 extern uint32_t count_array[20]; //光电变换计数数组 extern uint32_t count_sum; //光电变换计数总和 extern int MOT_Fre; //光电频率 extern char ADC_Flag; //ADC变化标志 extern uint32_t ADC_Count; //ADC变化计数 extern uint32_t ADC_Count_array[20];//ADC变化计数数组 extern uint32_t ADC_Count_sum; //ADC变化计数总和 extern int ADC_Fre; //ADC变化频率 void Sys_Init(void); //系统初始化 void led(void); //led闪烁 void main_do(void); //主函数运行程序 void mode_one(void); //运行模式一 void mode_two(void); //运行模式二 void mode_thr(void); //运行模式三 void get_time(void); //启动延时时间和错误信号持续时间计算 void deal_time(void); //时间数据处理 void get_length(uint8_t *D_array); //位移数据整理 void data_deal(unsigned char *send_array,uint16_t *V_array,float l,float t);//ADC、位移、温度数据处理 int zero_deal(void); void time_test(int i); #endif /* __BASIC_H */