#129 making code more readable
This commit is contained in:
parent
fb8f9410f2
commit
22822ca391
|
@ -64,6 +64,9 @@ void SimplePwm::setSimplePwmDutyCycle(float dutyCycle) {
|
||||||
multiWave.setSwitchTime(0, dutyCycle);
|
multiWave.setSwitchTime(0, dutyCycle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns absolute timestamp of state change
|
||||||
|
*/
|
||||||
static efitimeus_t getNextSwitchTimeUs(PwmConfig *state) {
|
static efitimeus_t getNextSwitchTimeUs(PwmConfig *state) {
|
||||||
efiAssert(CUSTOM_ERR_ASSERT, state->safe.phaseIndex < PWM_PHASE_MAX_COUNT, "phaseIndex range", 0);
|
efiAssert(CUSTOM_ERR_ASSERT, state->safe.phaseIndex < PWM_PHASE_MAX_COUNT, "phaseIndex range", 0);
|
||||||
int iteration = state->safe.iteration;
|
int iteration = state->safe.iteration;
|
||||||
|
@ -71,7 +74,7 @@ static efitimeus_t getNextSwitchTimeUs(PwmConfig *state) {
|
||||||
float periodNt = state->safe.periodNt;
|
float periodNt = state->safe.periodNt;
|
||||||
#if DEBUG_PWM
|
#if DEBUG_PWM
|
||||||
scheduleMsg(&logger, "iteration=%d switchTime=%.2f period=%.2f", iteration, switchTime, period);
|
scheduleMsg(&logger, "iteration=%d switchTime=%.2f period=%.2f", iteration, switchTime, period);
|
||||||
#endif
|
#endif /* DEBUG_PWM */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Once 'iteration' gets relatively high, we might lose calculation precision here.
|
* Once 'iteration' gets relatively high, we might lose calculation precision here.
|
||||||
|
@ -81,7 +84,7 @@ static efitimeus_t getNextSwitchTimeUs(PwmConfig *state) {
|
||||||
|
|
||||||
#if DEBUG_PWM
|
#if DEBUG_PWM
|
||||||
scheduleMsg(&logger, "start=%d timeToSwitch=%d", state->safe.start, timeToSwitch);
|
scheduleMsg(&logger, "start=%d timeToSwitch=%d", state->safe.start, timeToSwitch);
|
||||||
#endif
|
#endif /* DEBUG_PWM */
|
||||||
return NT2US(state->safe.startNt + timeToSwitchNt);
|
return NT2US(state->safe.startNt + timeToSwitchNt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +101,7 @@ void PwmConfig::setFrequency(float frequency) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void PwmConfig::handleCycleStart() {
|
void PwmConfig::handleCycleStart() {
|
||||||
if (safe.phaseIndex == 0) {
|
efiAssertVoid(CUSTOM_ERR_6697, safe.phaseIndex == 0, "handleCycleStart");
|
||||||
if (pwmCycleCallback != NULL) {
|
if (pwmCycleCallback != NULL) {
|
||||||
pwmCycleCallback(this);
|
pwmCycleCallback(this);
|
||||||
}
|
}
|
||||||
|
@ -114,7 +117,6 @@ void PwmConfig::handleCycleStart() {
|
||||||
scheduleMsg(&logger, "state reset start=%d iteration=%d", state->safe.start, state->safe.iteration);
|
scheduleMsg(&logger, "state reset start=%d iteration=%d", state->safe.start, state->safe.iteration);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -129,11 +131,15 @@ efitimeus_t PwmConfig::togglePwmState() {
|
||||||
if (cisnan(periodNt)) {
|
if (cisnan(periodNt)) {
|
||||||
/**
|
/**
|
||||||
* NaN period means PWM is paused
|
* NaN period means PWM is paused
|
||||||
|
* TODO: what about pin state? low, high or random?
|
||||||
|
* TODO: cover this by a unit test
|
||||||
*/
|
*/
|
||||||
return getTimeNowUs() + MS2US(100);
|
return getTimeNowUs() + MS2US(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (safe.phaseIndex == 0) {
|
||||||
handleCycleStart();
|
handleCycleStart();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Here is where the 'business logic' - the actual pin state change is happening
|
* Here is where the 'business logic' - the actual pin state change is happening
|
||||||
|
|
Loading…
Reference in New Issue