ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
966918 Топик полностью
йцукен (25.12.2019 11:42, просмотров: 113) ответил _Constantin24 на Захотелось мне поиграть с функцией Sleep( uint32_t milliseconds), вставить duration<> с разрядностью тиков оси, чтобы можно было и так и этак: Sleep( milliseconds{ timeout } ); Sleep( 437ms ); Sleep( 1s ); Sleep( seconds{ 2 } ); Оказалось, что
Я не стал связываться с хроно, и сделал так (тоже упражнение, ни для чего не нужно)  void delay(uint32_t cycles) { uint32_t t0 = DWT->CYCCNT; volatile uint32_t t1 = t0; while ((t1-t0) < cycles) t1 = DWT->CYCCNT; } constexpr double cpu_freq = 48.0e6; constexpr uint32_t operator""_ms(long double arg) { return static_cast<uint32_t>(cpu_freq * arg * 1.0e-3); } void foo() { delay(10'000); // ~0.21 ms delay(3.14_ms); }