Sleep() | nieregularne odstępy czasu
Ostatnio zmodyfikowano 2017-03-02 13:08
Nazgul Temat założony przez niniejszego użytkownika |
» 2017-03-02 02:48:11 Wybaczcie, że z takim opóźnieniem odpisuję;) Bardzo Wam dziękuję za pomoc!:D rozumiem już, że problemy typu metronom najlepiej załatwiać odwołując się się do bibliotek od operacji na dźwiękach;D wpadłem jeszcze na bardzo dziwny sposób. Do zweryfikowania, nie testowałem dokładności(już się posłużyłem biblioteką od dźwięku;D) #include <Windows.h>
int main() { double BPM = 60; int click_frequency = 800; int click_duration = 80; int nosound_frequency = 0; int nosound_duration =(( 60.0 / BPM ) * 1000.0 ) - click_duration; while( true ) { Beep( click_frequency, click_duration ); Beep( nosound_frequency, nosound_duration ); } }
Sposób trochę lewy;D A temat ciągnąłem, ponieważ chciałem znać funkcję która po prostu dokładnie czeka;D użyłbym tego w wielu projektach;) No najwyraźniej albo scheduler Windowsa jest kiepski, albo się nie da tego inaczej zrobić, żeby faktycznie zwolnić procesor;D zobaczę jeszcze jak będzie działał program w openGL z kwadracikiem i mnóstwem podmieniających się tekstur.. tak, żeby praktycznie wyświetlać film.. raz wyświetlę go bez ogranicznika fps, a raz z tym ogranicznikiem(Sleep). Jeżeli bez ograniczenia film będzie płynny, a potem z tym Sleepem film będzie "skakał" to będę musiał doczytać/wznowićtemat, żeby dowiedzieć się o mechanizmach które pozwalają płynnie wyświetlać takie coś;D ehh choćby ciągłe zabieranie cykli procesora, tylko że takie pasywne, żeby po prostu się nie grzał Jeszcze raz dziękuję!;) |
|
mokrowski |
» 2017-03-02 13:08:11 @Nazgul, ale jeśli chodzi o dźwięk to nie interesuje Cię problem "dokładnie czekać" tylko "wykonać dokładnie co X (tu jednostka czasu)". Stąd nie miej pretensji do planisty Windows czy innego systemu operacyjnego bo to są zagadnienia rozwiązywane właśnie przez bufory i transfery niskopoziomowe (np. DMA). Dlatego radziłem obsłużyć to w oddzielnym wątku/dedykowaną biblioteką lub mechanizmami systemu ;-) A wtedy dotkniesz (być może) problemu następnego.. czyli jak ograniczyć opóźnienie np. pomiędzy "zmiana ustawienia -> słyszalna reakcja w dźwięku" :-) |
|
1 « 2 » |