[wpilibc] Remove incorrect timer rollover (#2523)

If the 64 bit FPGA timer rolls over, a 32 bit value is added for
the rollover, an artifact of when it was a 32 bit timer.
The 64 bit microsecond timer won't rollover for 500k years so remove the
check for simplicity.
Fixes #2504
This commit is contained in:
sciencewhiz
2020-06-08 10:37:27 -07:00
committed by GitHub
parent 6be1b95241
commit 4b76adf15b
4 changed files with 2 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
/* Copyright (c) 2008-2020 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -25,8 +25,6 @@ double GetTime() { return frc2::GetTime().to<double>(); }
using namespace frc;
const double Timer::kRolloverTime = frc2::Timer::kRolloverTime.to<double>();
Timer::Timer() { Reset(); }
double Timer::Get() const { return m_timer.Get().to<double>(); }

View File

@@ -36,9 +36,6 @@ units::second_t GetTime() {
using namespace frc2;
// for compatibility with msvc12--see C2864
const units::second_t Timer::kRolloverTime = units::second_t((1ll << 32) / 1e6);
Timer::Timer() { Reset(); }
Timer::Timer(const Timer& rhs)
@@ -77,13 +74,6 @@ units::second_t Timer::Get() const {
std::scoped_lock lock(m_mutex);
if (m_running) {
// If the current time is before the start time, then the FPGA clock rolled
// over. Compensate by adding the ~71 minutes that it takes to roll over to
// the current time.
if (currentTime < m_startTime) {
currentTime += kRolloverTime;
}
result = (currentTime - m_startTime) + m_accumulatedTime;
} else {
result = m_accumulatedTime;