/* ********************************************************************************************************* * xmk guide * huali xmk guide process * * (c) Copyright 2016-2020, hualijidian.com * All Rights Reserved * * File : port.h * By : eric * Date : 2018年7月10日 * Version : V0.0.1 ********************************************************************************************************* */ #ifndef __HARDWARE_H_ #define __HARDWARE_H_ #include "string.h" #include "drv_flash.h" #include "iocfg.h" #include "env.h" /* ********************************************************************************************************* * 日志 ********************************************************************************************************* */ /* ********************************************************************************************************* * 硬件 ********************************************************************************************************* */ // 判断举升是否在顶端 #define LIFT1_IS_IN_TOP !I.Lft1InTop //顶升的限位 // 判断举升是否在底部 #define LIFT1_IS_IN_BOTTOM !I.Lft1InBottom #define DIR_LIFT2_IS_IN_FB !I.Lft2InTop //实际使用是常闭的,与逻辑相反 #define DIR_LIFT2_IS_IN_LR !I.Lft2InBottom #define LIFT1_UP LIFT_V1 = 0;LIFT_V3 = 0;LIFT_V5 = 0;LIFT_V2 = 1;LIFT_V4 = 1;LIFT_V6 = 1; #define LIFT1_DOWN LIFT_V1 = 0;LIFT_V5 = 0;LIFT_V6 = 0;LIFT_V2 = 1;LIFT_V3 = 1;LIFT_V4 = 1; #define LIFT1_STOP LIFT_V1 = 1;LIFT_V2 = 1;LIFT_V3 = 1;LIFT_V4 = 1;LIFT_V5 = 1;LIFT_V6 = 1; #define DIR_LIFT2_UP LIFT_V4 = 0;LIFT_V2 = 0;LIFT_V3 = 0;LIFT_V1 = 1;LIFT_V5 = 1;LIFT_V6 = 1; #define DIR_LIFT2_DOWN LIFT_V4 = 0;LIFT_V6 = 0;LIFT_V2 = 0;LIFT_V1 = 1;LIFT_V3 = 1;LIFT_V5 = 1; #define DIR_LIFT2_STOP LIFT_V1 = 1;LIFT_V2 = 1;LIFT_V3 = 1;LIFT_V4 = 1;LIFT_V5 = 1;LIFT_V6 = 1; #define DEC_PRESS_1 LIFT_V7 = 0; #define DEC_PRESS_2 LIFT_V8 = 0; #define DEC_PRESS_STOP LIFT_V7 = 1;LIFT_V8 = 1 #define BTY_AUTO_ON LIFT_V10 = 0 #define BTY_AUTO_OFF LIFT_V10 = 1 #define CARGO_IS_IN_FORWARD_MID !I.Npn8 #define CARGO_IS_IN_BACKWARD_MID !I.Npn7 #define CARGO_IS_IN_FORWARD_STOP !I.Npn10 #define CARGO_IS_IN_BACKWARD_STOP !I.Npn9 #define OBS_FORWARD_EN OBS1_OUT1 = 0;OBS1_OUT2 = 1; OBS2_OUT1 = 1;OBS2_OUT2 = 1 #define OBS_LEFT_EN OBS1_OUT1 = 1;OBS1_OUT2 = 0; OBS2_OUT1 = 1;OBS2_OUT2 = 1 #define OBS_BACKWARD_EN OBS1_OUT1 = 1;OBS1_OUT2 = 1; OBS2_OUT1 = 0;OBS2_OUT2 = 1 #define OBS_RIGHT_EN OBS1_OUT1 = 1;OBS1_OUT2 = 1; OBS2_OUT1 = 1;OBS2_OUT2 = 0 #define OBS_OFF OBS1_OUT1 = 1;OBS1_OUT2 = 1; OBS2_OUT1 = 1;OBS2_OUT2 = 1 #define OBS_ON OBS1_OUT1 = 0;OBS1_OUT2 = 0; OBS2_OUT1 = 0;OBS2_OUT2 = 0 #define LED0_On LED0 = 0 #define LED0_Off LED0 = 1 #define LED0_Toggle LED0 = !LED0 #define Light1_RedOn LED1_V1 = 0 #define Light1_RedOff LED1_V1 = 1 #define Light1_RedToggle LED1_V1 = !LED1_V1 #define Light1_YellowOn LED1_V2 = 0 #define Light1_YellowOff LED1_V2 = 1 #define Light1_YellowToggle LED1_V2 = !LED1_V2 #define Light1_GreenOn LED1_V3 =0 #define Light1_GreenOff LED1_V3 =1 #define Light1_GreenToggle LED1_V3 = !LED1_V3 #define Light2_RedOn LED2_V1 = 0 #define Light2_RedOff LED2_V1 = 1 #define Light2_RedToggle LED2_V1 = !LED2_V1 #define Light2_YellowOn LED2_V2 = 0 #define Light2_YellowOff LED2_V2 = 1 #define Light2_YellowToggle LED2_V2 = !LED2_V2 #define Light2_GreenOn LED2_V3 =0 #define Light2_GreenOff LED2_V3 =1 #define Light2_GreenToggle LED2_V3 = !LED2_V3 #define RS485_ENABLE RS485_TX_EN = 1 #define RS485_DISABLE RS485_TX_EN = 0 /** * @brief Set motor speed * @param speed 0~100 percent of speed * @retval None * @note �ٶȰٷֱȻ����PWM�ı���,���3000�������������ת�� speed * * HI_MOTOR_PWM_TIME = 80% PWM ���Ҽ��� */ #define LIFT1_Speed(speed) (TIM4->CCR2 = (speed)) #endif /* __HARDWARE_H_ */