drv_io.h 3.5 KB

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