Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Timer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.07.2008, 10:39 Uhr
~Alex___
Gast


Hallo zusammen,

ich habe einen Sensor, den ich anspreche. Nun brauche ich eine Funktion, die alle 0.2 Sek einen Wert von diesem ausliest.

Wie mache ich das am besten? Ein Thread mit Timer? Die Genauigkeit vom Timer ist nicht sehr wichtig, es reicht, wenn ca alle 0.2 - 0.4 Sek ausgelesen wird.

Gruß
Alex
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.07.2008, 10:47 Uhr
~pivke
Gast



C++:
while(0)
{

system("CLS");
}


Probier das mal so aus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.07.2008, 11:12 Uhr
CppProgrammer



Vielleicht so in der Art:


C++:
#include <windows.h>

DWORD WINAPI TimerThread(LPVOID ptr)
{
    while(true){
        // ...
        
        // 200 Millisekunden warten
        Sleep(200);
    }

    return 0;
}

int main()
{
     HANDLE hThread = CreateThread(NULL, 0, TimerThread, NULL, 0, NULL);

     while(WaitForSingleObject(hThread, 0) != WAIT_OBJECT_0){
         // Hier kannst du dann mit deinem normalen Programm
         // solange weitermachen, wie der TimerThread noch läuft
         // ...
     }

    return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.07.2008, 11:21 Uhr
WiredCoder




Zitat:
....Sleep(200);

Damit wird das komplette Programme angehalten, würd ich nicht machen.
--
Ich würde mich sehr über einen Besuch auf meiner Website freuen: www.Online-Programmierung.com
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.07.2008, 12:23 Uhr
CppProgrammer




Zitat von WiredCoder:

Zitat:
....Sleep(200);

Damit wird das komplette Programme angehalten, würd ich nicht machen.


Da liegst du aber falsch.
Laut MSDN wird die Sleep() Funktion wie folgt beschrieben:

( http://msdn.microsoft.com/en-us/library/ms686298(VS.85).aspx )

Zitat:

Sleep Function

Suspends the execution of the current thread until the time-out interval elapses.

To enter an alertable wait state, use the SleepEx function.



Das heißt, dass nur der Thread schlafen gelegt wird, in dem die Sleep() Funktion aufgerufen wurde.
Folglich "schläft" also nur der TimerThread in meinem Beispielsprogramm, völlig unabhängig von der main().

Dieser Post wurde am 13.07.2008 um 12:24 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.07.2008, 12:36 Uhr
xXx
Devil


Wenn du auf WinAPI zurückgreifen willst, nimm doch einfach SetTimer und gib eine TimerProc an. KillTimer nicht am Ende vergessen!

Ansonsten mal boost.org angucken. Da gibt es auch nen Timer! (und c++-like )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: