From e3a2abdf97177f8df966801fda337d8592bc1525 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Fri, 1 Dec 2017 10:26:40 -0800 Subject: [PATCH] HAL_SetDigitalPWMRate(): Use same logic as LabView. (#794) --- hal/src/main/native/athena/DIO.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hal/src/main/native/athena/DIO.cpp b/hal/src/main/native/athena/DIO.cpp index 2c97b0d14c..758d44a1ee 100644 --- a/hal/src/main/native/athena/DIO.cpp +++ b/hal/src/main/native/athena/DIO.cpp @@ -179,10 +179,8 @@ void HAL_SetDigitalPWMRate(double rate, int32_t* status) { // TODO: Round in the linear rate domain. initializeDigital(status); if (*status != 0) return; - uint8_t pwmPeriodPower = static_cast( - std::log(1.0 / (pwmSystem->readLoopTiming(status) * 0.25E-6 * rate)) / - std::log(2.0) + - 0.5); + uint16_t pwmPeriodPower = static_cast( + std::log(1.0 / (16 * 1.0E-6 * rate)) / std::log(2.0) + 0.5); digitalSystem->writePWMPeriodPower(pwmPeriodPower, status); }