drv_io.h 3.2 KB

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