/* * ======== PWMTimerMSP432_close ======== * @pre Function assumes that the handle is not NULL */ void PWMTimerMSP432_close(PWM_Handle handle) { uintptr_t key; PWMTimerMSP432_Object *object = handle->object; PWMTimerMSP432_HWAttrs const *hwAttrs = handle->hwAttrs; MAP_Timer_A_setCompareValue(hwAttrs->baseAddr, hwAttrs->compareRegister, 0); key = HwiP_disable(); /* Mark the output as unused */ (object->pwmTimerStatus)->activeOutputsMask &= ~(object->pwmCompareOutputBit); /* Stop timer & clear all status if no other PWM instances are being used */ if ((object->pwmTimerStatus)->activeOutputsMask == 0) { MAP_Timer_A_stopTimer(hwAttrs->baseAddr); (object->pwmTimerStatus)->cyclesPerMicroSec = 0; (object->pwmTimerStatus)->period = 0; (object->pwmTimerStatus)->prescalar = 0; } object->isOpen = false; HwiP_restore(key); /* Remove power constraints */ Power_releaseConstraint(PowerMSP432_DISALLOW_DEEPSLEEP_0); Power_releaseConstraint(PowerMSP432_DISALLOW_PERF_CHANGES); Power_releaseConstraint(PowerMSP432_DISALLOW_SHUTDOWN_0); Power_releaseConstraint(PowerMSP432_DISALLOW_SHUTDOWN_1); DebugP_log1("PWM: (%p) closed", (uintptr_t) handle); }
void StopTimerA0_0() { MAP_Timer_A_stopTimer(TIMER_A0_MODULE); }