Keep track of FPGA time rollovers with 64-bit time.

This allows both greater than 72 minute (2^32 * 1 us) timeouts and also
gracefully handles notifiers across the FPGA time counter rollover.

Change-Id: Ibde0b903155f60b618b0ca4d5f8f6dd49f90b020
This commit is contained in:
Peter Johnson
2015-12-30 19:06:47 -08:00
committed by Brad Miller (WPI)
parent 063925e737
commit e2ec34090a
13 changed files with 71 additions and 43 deletions

View File

@@ -88,7 +88,7 @@ tSPI *spiSystem;
struct SPIAccumulator {
void* notifier = nullptr;
uint32_t triggerTime;
uint64_t triggerTime;
uint32_t period;
int64_t value = 0;
@@ -1499,7 +1499,7 @@ priority_recursive_mutex& spiGetSemaphore(uint8_t port) {
return spiMXPSemaphore;
}
static void spiAccumulatorProcess(uint32_t currentTime, void *param) {
static void spiAccumulatorProcess(uint64_t currentTime, void *param) {
SPIAccumulator* accum = (SPIAccumulator*)param;
// perform SPI transaction