mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
[hal] Use std::lround() instead of adding 0.5 and truncating (#3012)
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "DigitalInternal.h"
|
||||
|
||||
#include <atomic>
|
||||
#include <cmath>
|
||||
#include <thread>
|
||||
|
||||
#include <FRC_NetworkCommunication/LoadOut.h>
|
||||
@@ -108,10 +109,10 @@ void initializeDigital(int32_t* status) {
|
||||
double loopTime = pwmSystem->readLoopTiming(status) /
|
||||
(kSystemClockTicksPerMicrosecond * 1e3);
|
||||
|
||||
pwmSystem->writeConfig_Period(
|
||||
static_cast<uint16_t>(kDefaultPwmPeriod / loopTime + 0.5), status);
|
||||
uint16_t minHigh = static_cast<uint16_t>(
|
||||
(kDefaultPwmCenter - kDefaultPwmStepsDown * loopTime) / loopTime + 0.5);
|
||||
pwmSystem->writeConfig_Period(std::lround(kDefaultPwmPeriod / loopTime),
|
||||
status);
|
||||
uint16_t minHigh = std::lround(
|
||||
(kDefaultPwmCenter - kDefaultPwmStepsDown * loopTime) / loopTime);
|
||||
pwmSystem->writeConfig_MinHigh(minHigh, status);
|
||||
// Ensure that PWM output values are set to OFF
|
||||
for (uint8_t pwmIndex = 0; pwmIndex < kNumPWMChannels; pwmIndex++) {
|
||||
|
||||
Reference in New Issue
Block a user