[Qt3] Timer für Schleife



  • hi,
    ich will mir Messwerte von einem Gerät auslesen, und zwar max. ~80 Mal pro Sekunde.
    Eine einzelne Anfrage sollte also min. 12ms dauern.

    die Schleife sieht folgendermaßen aus:

    QTime timer;
    do {
        timer.start();
    
        // hier findet eigentlich die Anfrage ans Gerät statt
        // [ ... ]
    
        d = d + 1.0;
    
        elapsedTime = timer.elapsed();
        while( elapsedTime < 12 )
        {
    	elapsedTime = timer.elapsed();
        }
        qDebug("elapsed time (single loop): %i",  elapsedTime);
    } while( d < (dataSysParams->integrationTime * 80.0) );
    

    Das Problem ist, dass ein Schleifendurchlauf immer min. 15-16ms dauert und ich nicht verstehe warum. Was macht der Rechner denn in dieser (IMO relativ langen) Zeitspanne?
    Ich hab den eigentlichen Inhalt (die Anfrage ans Gerät) schon testweise rausgenommen, so dass nur noch die reine Schleife übrigt bleibt, ohne irgendeine Besserung 😞

    Hat jemand nen Tipp für mich?
    gruß
    eXi

    P.S. eigentlich dreht es sich nur indirekt um Qt, vielleicht ist das Topic besser bei C++ aufgehoben...


Log in to reply