I messed up the merge, so pushing it over to another repo so I don't lose it. Will tidy up and remove later
Dependencies: BufferedSerial FatFileSystemCpp mbed
Diff: frameRates.cpp
- Revision:
- 9:7214e3c3e5f8
- Parent:
- 0:97661408d0f9
- Child:
- 22:0dd9c1b5664a
--- a/frameRates.cpp Tue Feb 16 09:53:54 2021 +0000 +++ b/frameRates.cpp Thu Feb 18 18:15:48 2021 +0000 @@ -1,5 +1,18 @@ #include "LTCApp.h" + + +const float FrameRates[] = {0, 23.976, 24, 25, 29.97, 30, + 47.95, 48, 50, 59.94, 60, 10000000 + }; +const double FramePeriods[] = {1000000, 1000000 / 23.976, 1000000 / 24, + 1000000 / 25, 1000000 / 29.97, 1000000 / 30, + 1000000 / 47.95, 1000000 / 48, 1000000 / 50, + 1000000 / 59.94, 1000000 / 60, 10 + }; +const int numberOfRates = 11; + + frameRates::frameRates() { setRate(1); } @@ -91,3 +104,15 @@ } } +int frameRates::getClosestRate(long int framePeriodUS) +{ + int indexOver = 1; + while (framePeriodUS <= frameRateInfo::FramePeriods[indexOver]) + indexOver++; + float amountOver = framePeriodUS - frameRateInfo::FramePeriods[indexOver]; + float amountUnder = frameRateInfo::FramePeriods[indexOver - 1] - framePeriodUS; + if (amountOver > amountUnder) + indexOver--; + return (int)(FrameRates[indexOver]+0.5); +} +