ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
967210 Топик полностью
_Constantin24 (26.12.2019 13:37, просмотров: 2) ответил fk0 на Ты какую-то чушь несешь. Как до этого в голом C жили 40 лет с CLOCKS_PER_SEC и целыми числами, где тоже на цело не делится? Для задержек округляли в большую сторону. Смысл доли тика ловить? В unix не зря в timespec хранятся секунды и наносекунды
Возьмем пример: Есть ось с тиком 1 миллисекунда( 1:1 ). Sleep( 500ms )   using tTickOs = std::chrono::duration<int32_t , std::ratio<portTICK_PERIOD_MS, 1000> >; void Sleep( tTickOs tick ) { vTaskDelay( tick.count() ); } .... Sleep( 500ms ); .... Все хорошо компилиться. Все четко работает. Меням тик = 5 мс ( 1:5 ). ' void Sleep( tTickOs tick ) { vTaskDelay( tick.count() ); } .... Sleep( 500ms ); // error: no matching function for call to 'Sleep(std::chrono::milliseconds)' .... Необходимо выставить using tTickOs = std::chrono::duration<float, std::ratio<portTICK_PERIOD_MS, 1000> >; p.s. Я ничего не имею против реализации Sleep( GetTickFromMilliseconds( 500 ) ). В данной ветке меня интересует duration без ограничения по int.