drv_io.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #ifndef __GPIO_Init_H__
  2. #define __GPIO_Init_H__
  3. #include "common.h"
  4. #define CONFIG_BATT_DET_USE_IRQ 0
  5. #define GPIO_PORT_FL GPIOB
  6. #define GPIO_PIN_FL GPIO_PIN_2
  7. #define GPIO_PORT_S11 GPIOB
  8. #define GPIO_PIN_S11 GPIO_PIN_13
  9. #define GPIO_PORT_S21 GPIOB
  10. #define GPIO_PIN_S21 GPIO_PIN_15
  11. #define GPIO_PORT_SS GPIOB
  12. #define GPIO_PIN_SS GPIO_PIN_14
  13. #define GPIO_PORT_ACC2_EN GPIOC
  14. #define GPIO_PIN_ACC2_EN GPIO_PIN_15
  15. #define SHARK_XL_FUZZ 20
  16. #define Can_Power_Enable(on) gpio_bit_write(GPIOA,GPIO_PIN_12,(bit_status)(!on))
  17. #define FL_Enable(on) gpio_bit_write(GPIOB,GPIO_PIN_2,(bit_status)(!on))
  18. #define Lock_Enable(on) gpio_bit_write(GPIOB,GPIO_PIN_4,(bit_status)(on))
  19. #define QD_Enable(on) gpio_bit_write(GPIOB,GPIO_PIN_5,(bit_status)(on))
  20. //#define ACC2_Enable(on) gpio_bit_write(GPIOC,GPIO_PIN_15,(bit_status)(on))
  21. #define Left_Light_Enable(on) gpio_bit_write(GPIOC,GPIO_PIN_6,(bit_status)(on))
  22. #define Right_Light_Enable(on) gpio_bit_write(GPIOC,GPIO_PIN_7,(bit_status)(on))
  23. #define Tail_Light_Enable(on) gpio_bit_write(GPIOB,GPIO_PIN_0,(bit_status)(on))
  24. #define Carpet_Light_Enable(on) gpio_bit_write(GPIOB,GPIO_PIN_1,(bit_status)(on))
  25. #define Side_Stay_Dect() gpio_input_bit_get(GPIOC,GPIO_PIN_10)
  26. #define Soak_Dect() !gpio_input_bit_get(GPIOC,GPIO_PIN_11)
  27. #define Sitting_Dect() gpio_input_bit_get(GPIOC,GPIO_PIN_12)
  28. #define Repair_Key_Dect() gpio_input_bit_get(GPIOC,GPIO_PIN_13)
  29. #define QD_Dect() (!gpio_input_bit_get(GPIOB,GPIO_PIN_6))
  30. #define XL_Dect() gpio_input_bit_get(GPIOB,GPIO_PIN_7)
  31. #define ACC2_Dect() (!gpio_input_bit_get(GPIOD,GPIO_PIN_0))
  32. #define ACC2_Over_Loader_Dect() (!gpio_input_bit_get(GPIOC,GPIO_PIN_14))
  33. #define Lock_Dect() gpio_output_bit_get(GPIOB,GPIO_PIN_4)
  34. #define Carpet_Dect() gpio_output_bit_get(GPIOB,GPIO_PIN_1)
  35. #define Tail_Dect() gpio_output_bit_get(GPIOB,GPIO_PIN_0)
  36. #define Enable_12V(on) gpio_bit_write(GPIOB,GPIO_PIN_3,(bit_status)(on))
  37. #define V12_On_Dect() (!gpio_input_bit_get(GPIOA,GPIO_PIN_15))
  38. #define CHARGE_DEC_TIMEOUT (100)
  39. #define SIDE_STAY_DEC_TIMEOUT (100)
  40. #define SOAK_DEC_TIMEOUT (2000)
  41. #define STI_DEC_TIMEOUT (100)
  42. #define REPAIR_DEC_TIMEOUT (100)
  43. #define QD_DEC_TIMEOUT (100)
  44. #define XL_DEC_TIMEOUT (100)
  45. #define ACC2_DEC_TIMEOUT (100)
  46. #define ACC2_ENABLE_TIMEOUT (100)
  47. #define CC_PULSE_MIN_COUNT (2)
  48. #define CC_TIME_OUT_COUNT (3000)
  49. #define CC_PULL_OUT_TIME_OUT_COUNT (3000)
  50. typedef struct
  51. {
  52. uint8_t cc_set;
  53. uint16_t cc_time_count;
  54. uint8_t cc_is_charger_in;
  55. uint32_t cc_pulse_count;
  56. uint8_t cc_pull_out_set;
  57. uint16_t cc_pull_out_time_count;
  58. }CHECK_CHARGER;
  59. extern CHECK_CHARGER check_charger;
  60. extern DELAY_COMMON side_stay_dec_delay;
  61. extern CTR_DELAY_COMMON soak_dec_delay;
  62. extern DELAY_COMMON sti_dec_delay;
  63. extern DELAY_COMMON repair_dec_delay;
  64. extern DELAY_COMMON qd_dec_delay;
  65. extern DELAY_COMMON acc2_dec_delay;
  66. extern DELAY_COMMON acc2_delay;
  67. extern DELAY_COMMON left_light_delay;
  68. extern DELAY_COMMON right_light_delay;
  69. extern DELAY_COMMON charge_delay;
  70. extern uint8_t battery_charged_full;
  71. extern uint8_t QD_switch_from;
  72. extern u32 shark_bms_acc2_oc_times;
  73. enum
  74. {
  75. FROM_QD,
  76. FROM_ACC12,
  77. FROM_MAX
  78. };
  79. void _CB_Operate_Initial(void);
  80. void GPIO_Initial(void);
  81. void E_CTR_Initial(void);
  82. void ACC2_PWM(void);
  83. void ACC2_Enable(uint8_t on);
  84. void Check_Charger_Timeout(void);
  85. uint8_t IS_CHARGE_IN(void);
  86. void Set_Charger_In(uint8_t value);
  87. void QD_Enable_From(uint8_t on,uint8_t from);
  88. uint8_t IS_CHARGE_IN(void);
  89. uint8_t ACC2_Is_On(void);
  90. void Check_S11_May_Operate(void);
  91. void shark_bms_xl_tick(void);
  92. #endif