From 0c63ebc494d6e909eff6cfa15eb23960a0e2f015 Mon Sep 17 00:00:00 2001 From: marwik15 Date: Sat, 7 May 2022 17:32:53 +0200 Subject: Reimplement sample counter --- examples/sinewave/sinewave_example.cpp | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'examples') diff --git a/examples/sinewave/sinewave_example.cpp b/examples/sinewave/sinewave_example.cpp index 2f7c47e..606cab2 100644 --- a/examples/sinewave/sinewave_example.cpp +++ b/examples/sinewave/sinewave_example.cpp @@ -14,20 +14,11 @@ using Clock = std::chrono::high_resolution_clock; int main(int argc, char* argv[]) { - seconds interval{ 10.0 }; - bool end = false; - int i = 1; + seconds interval{ 0.01 }; + int i = 0; int samples; int opt; - const std::function infinite = []() {}; - const std::function limited = [&end, &i, &samples]() { - i++; - if (i > samples) end = true; - }; - - auto generatorGuard = infinite; - try { while ((opt = getopt(argc, argv, "n:i:")) != -1) { switch (opt) { @@ -36,8 +27,6 @@ int main(int argc, char* argv[]) { break; case 'n': samples = std::stoi(optarg); - if (samples == 0) end = true; - generatorGuard = limited; break; default: std::cerr << "Usage: " << argv[0] << " [-i interval][-n samples]"<= samples) break; + i++; + const auto endTime = Clock::now() + interval; std::cout << hwd::sinewave::get_point() << std::endl; std::this_thread::sleep_until(endTime); - - generatorGuard(); } return 0; -- cgit v1.1