PBOSL Timer mit 5 Minuten?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
steelbasic
Beiträge: 63
Registriert: 02.09.2004 19:41
Wohnort: Niedersachsen

PBOSL Timer mit 5 Minuten?

Beitrag von steelbasic »

Hallo,

ich brauche einen Timer der mir einen 5-Minutentakt und ggf mehr herausgibt. Ich habe es so wie unten beschrieben probiert. Das scheint nicht zu gehen, der Timer läuft völlig ungenau. Mit 60000 also einer Minute geht es. Mache ich etwas falsch oder geht das mit dem Timer nicht?

Code: Alles auswählen

Procedure Takt_diff()
    Shared Takt_differnz
    Takt_differnz = 1
  EndProcedure
  StartTimer( 2, 300000, @Takt_diff())
Bedanke mich schon einmal für Eure Hilfe 8)
Viele Grüße
Hein Blöd
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Wenns so nicht geht, dann machs doch so:

Code: Alles auswählen

For I=1 to 5 Step 1
  StartTimer( 2, 100000, @Takt_diff()) 
  Debug "Minute " + I + " von 5 ist bereits vergangen!"
Next

Debug "Jetzt sind 5 Minuten vergangen, obwohl du nur 1 Minute vom Timer genutzt hast-welche akrobatische Gehirnleistung, nicht? xD"
Der Code ist jetzt mal intuitiv geändert worden-hab eigentlich keine Ahnung, wie der Timer funzt.
Aber wenns mit einer Minute geht, dann gehts auch mit 5x1 Minute! :lol:

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Man könnte des auch so machen:

Code: Alles auswählen

Procedure Timer()
    Debug "5 min um!"
EndProcedure

lTime = GetTickCount_() + 5*60*1000
Repeat
    If GetTickCount_() > lTime
        lTime = GetTickCount_() + 5*60*1000
        Timer()
    EndIf
    
    Delay(1)
Until GetAsyncKeyState_(#VK_ESCAPE)
Bild
Benutzeravatar
steelbasic
Beiträge: 63
Registriert: 02.09.2004 19:41
Wohnort: Niedersachsen

Beitrag von steelbasic »

Vielen Dank für die Antworten!

Ich werde wohl eine dieser Lösungen nehmen.

Komisch ist allerdings, dass genau der gleiche code auf meinem Notebook unter XP-Home läuft. Auf einem anderen Rechner mit ME läuft der Timer ungenau und immer zu früh ab.
Viele Grüße
Hein Blöd
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Liegt daran, dass Windows für die Timer ein Maximum hat. Wenn der
TimeOut Wert größer als das Maximum ist, dann wird das Maximum
genutzt.
Bild
Antworten