|
|
@@ -55,7 +55,7 @@ void gpio_beep(u32 ms) {
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-void mc_brk_gpio_init(void) {
|
|
|
+void gpio_mc_brk_init(void) {
|
|
|
#ifdef GPIO_BRAKE_IN_GROUP
|
|
|
rcu_periph_clock_enable(GPIO_BRAKE_IN_RCU);
|
|
|
gpio_init(GPIO_BRAKE_IN_GROUP, GPIO_BRAKE_IN_MODE, GPIO_OSPEED_50MHZ, GPIO_BRAKE_IN_PIN);
|
|
|
@@ -85,6 +85,27 @@ void gpio_mlock_init(void) {
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
+void gpio_fan_det_init(void) {
|
|
|
+#ifdef GPIO_FAN1_IN_GROUP
|
|
|
+ rcu_periph_clock_enable(GPIO_FAN1_IN_RCU);
|
|
|
+ gpio_init(GPIO_FAN1_IN_GROUP, GPIO_FAN1_IN_MODE, GPIO_OSPEED_50MHZ, GPIO_FAN1_IN_PIN);
|
|
|
+ gpio_exti_source_select(GPIO_FAN1_EXIT_SRC_GROUP, GPIO_FAN1_EXIT_SRC_PIN);
|
|
|
+ exti_init(GPIO_FAN1_EXTI, EXTI_INTERRUPT, EXTI_TRIG_RISING);
|
|
|
+ nvic_irq_enable(GPIO_FAN1_IRQ, ENC_OTHER_IRQ_PRIORITY, 0U);
|
|
|
+ exti_interrupt_flag_clear(GPIO_FAN1_EXTI);
|
|
|
+ exti_interrupt_enable(GPIO_FAN1_EXTI);
|
|
|
+#endif
|
|
|
+#ifdef GPIO_FAN2_IN_GROUP
|
|
|
+ rcu_periph_clock_enable(GPIO_FAN2_IN_RCU);
|
|
|
+ gpio_init(GPIO_FAN2_IN_GROUP, GPIO_FAN2_IN_MODE, GPIO_OSPEED_50MHZ, GPIO_FAN2_IN_PIN);
|
|
|
+ gpio_exti_source_select(GPIO_FAN2_EXIT_SRC_GROUP, GPIO_FAN2_EXIT_SRC_PIN);
|
|
|
+ exti_init(GPIO_FAN2_EXTI, EXTI_INTERRUPT, EXTI_TRIG_RISING);
|
|
|
+ nvic_irq_enable(GPIO_FAN2_IRQ, ENC_OTHER_IRQ_PRIORITY, 0U);
|
|
|
+ exti_interrupt_flag_clear(GPIO_FAN2_EXTI);
|
|
|
+ exti_interrupt_enable(GPIO_FAN2_EXTI);
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
void gpio_phase_u_detect(bool enable) {
|
|
|
#ifdef GPIO_UDEC_OUT_GROUP
|
|
|
if (enable) {
|
|
|
@@ -104,7 +125,8 @@ void gpio_phase_u_detect(bool enable) {
|
|
|
|
|
|
void mc_gpio_init(void) {
|
|
|
gpio_mlock_init();
|
|
|
- mc_brk_gpio_init();
|
|
|
+ gpio_mc_brk_init();
|
|
|
+ gpio_fan_det_init();
|
|
|
}
|
|
|
|
|
|
bool mc_get_gpio_brake(void) {
|
|
|
@@ -121,7 +143,11 @@ bool mc_get_gpio_brake1(void) {
|
|
|
|
|
|
|
|
|
bool gpio_motor_locked(void) {
|
|
|
+#ifdef GPIO_MLOCK_IN_GROUP
|
|
|
return gpio_input_bit_get(GPIO_MLOCK_IN_GROUP, GPIO_MLOCK_IN_PIN) == RESET;
|
|
|
+#else
|
|
|
+ return false;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
void gpio_ir2136_enable(bool enable) {
|