From 119602629046a11e9b04885cebdb766af18b9865 Mon Sep 17 00:00:00 2001 From: Oskar Weigl Date: Wed, 24 Apr 2019 17:43:37 -0700 Subject: [PATCH] fix subscribe and unsubscribe to idx pin --- Firmware/Board/v3/Src/gpio.c | 2 ++ Firmware/MotorControl/encoder.cpp | 1 + 2 files changed, 3 insertions(+) diff --git a/Firmware/Board/v3/Src/gpio.c b/Firmware/Board/v3/Src/gpio.c index 4276e697..3fa36da4 100644 --- a/Firmware/Board/v3/Src/gpio.c +++ b/Firmware/Board/v3/Src/gpio.c @@ -236,6 +236,8 @@ bool GPIO_subscribe(GPIO_TypeDef* GPIO_port, uint16_t GPIO_pin, GPIO_InitStruct.Pull = pull_up_down; HAL_GPIO_Init(GPIO_port, &GPIO_InitStruct); + // Clear any previous triggers + __HAL_GPIO_EXTI_CLEAR_IT(GPIO_pin); // Enable interrupt HAL_NVIC_SetPriority(get_irq_number(GPIO_pin), 0, 0); HAL_NVIC_EnableIRQ(get_irq_number(GPIO_pin)); diff --git a/Firmware/MotorControl/encoder.cpp b/Firmware/MotorControl/encoder.cpp index 95dc91f9..374d882b 100644 --- a/Firmware/MotorControl/encoder.cpp +++ b/Firmware/MotorControl/encoder.cpp @@ -123,6 +123,7 @@ bool Encoder::run_index_search() { if (!config_.idx_search_unidirectional && axis_->motor_.config_.direction == 0) { axis_->motor_.config_.direction = 1; } + set_idx_subscribe(); bool orig_finish_on_enc_idx = axis_->config_.lockin.finish_on_enc_idx; axis_->config_.lockin.finish_on_enc_idx = true;