From 9dad534f020f83b3924f8337a9a1145d9da2e15c Mon Sep 17 00:00:00 2001 From: Bob-the-Kuhn Date: Tue, 21 Nov 2017 21:29:00 -0600 Subject: [PATCH] fixed --- Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp b/Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp index 0817d01311..1a62168cbe 100644 --- a/Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp +++ b/Marlin/src/HAL/HAL_LPC1768/LPC1768_PWM.cpp @@ -245,14 +245,15 @@ bool LPC1768_PWM_detach_pin(pin_t pin) { pin = GET_PIN_MAP_PIN(GET_PIN_MAP_INDEX(pin & 0xFF)); - NVIC_EnableIRQ(PWM1_IRQn); // ?? fixes compiler problem?? ISR won't start - // unless put in an extra "enable" NVIC_DisableIRQ(PWM1_IRQn); uint8_t slot = 0xFF; for (uint8_t i = 0; i < NUM_PWMS; i++) // find slot if (ISR_table[i].pin == pin) { slot = i; break; } - if (slot == 0xFF) return false; // return error if pin not found + if (slot == 0xFF) { // return error if pin not found + NVIC_EnableIRQ(PWM1_IRQn); + return false; + } LPC1768_PWM_update_map_MR(); @@ -315,7 +316,10 @@ bool LPC1768_PWM_write(pin_t pin, uint32_t value) { uint8_t slot = 0xFF; for (uint8_t i = 0; i < NUM_PWMS; i++) // find slot if (ISR_table[i].pin == pin) { slot = i; break; } - if (slot == 0xFF) return false; // return error if pin not found + if (slot == 0xFF) { // return error if pin not found + NVIC_EnableIRQ(PWM1_IRQn); + return false; + } LPC1768_PWM_update_map_MR();