[VB6] Timer probleempje

Pagina: 1
Acties:

  • solomo
  • Registratie: Juli 2001
  • Niet online

solomo

.....huh?

Topicstarter
ik ben een beetje aan het knoeien met Visual basic en de paralelle poort, tot nu toe heb ik elk probleem nog kunnen oplossen (eventueel met de hulp van de got search) maar nu weet ik het even niet meer.

ik ben dus bezig met een lpt poort programma
( http://members.home.nl/solomo/lpt/lpt.zip werkt niet onde win 2000/xp)
en daarbij maak ik gebruik van de software timer, nu wist ik al dat die niet altijd even nauwkeurig is maar is er ook een ander probleem.
Als ik de timer op de laagste waarde zet 1/1000 seconden dan komt er niet om de 1/1000 secode een timerevent maar is dat langzamer (ik schat 1/50 seconde of zelfs iets langzamer :Z ) maar dat hoef ook niet zo raar te zijn want het is mogelijk dat de timer een lagere prioriteit heeft en dus vertraagd word.
nu komt het leuke deel, als ik met het toetsenbord of met de muis werk dan komen de timer events sneller :? , misschien halen ze dan nog de 1/1000 seconde niet maar het komt in iedergeval wel dichter in de buurt.

nu mijn vraagen:
1) kan iemand dit verklaren?
2) hoe kan ik dit het best oplossen?
(hardwarematige timer? hoe?, iets anders?)

  • red_indian
  • Registratie: Maart 2000
  • Laatst online: 24-06 16:43

red_indian

 Smokin' Suckz B!

haha, grappig. ik ben al jaren van mening dat sommige computers/programma's sneller werken als je met je muis bewegingen maakt. :P

heb er geen verklaring voor, maar er is ook iets als 'Public Declare Function GetTickCount Lib "kernel32" () As Long'

volgens mij kun je daar preciezer mee timen. nooit zelf geprobeerd, maar kwam het een keer tegen.

Need a cuesheet/tracklisting? (meer dan 500.000 online)


Verwijderd

Er zit in Windows een andere timer die veel nauwkeuriger is: QueryPerformanceTimer. Deze moet je gebruiken in combinatie met QueryPerformanceFrequency.
De vraag is alleen of je het daarmee ook red. Maar je geeft niet aan waarom je zo'n nauwkeurige timer gebruikt...

  • solomo
  • Registratie: Juli 2001
  • Niet online

solomo

.....huh?

Topicstarter
hij moet gewoon snel dingen kunnen veranderen, een anderre reden is omdat ik ergens anders voor 3000 pulsen moet geven om iets te laten veranderen en die wil ik in ieder geval binnen 3 seconden hebben en dat lukt me dus niet met die timer :)

een eventuele oplossing is met een lus te werken en die dan heeeel kort niets laten doen en dan een puls geven om zo voor snelle pulsen te zorgen, maar het is nu ook interessant om dat via een andere timer te proberen, ben wel benieuwd of dat lukt :)

Verwijderd

Op vrijdag 26 april 2002 13:49 schreef Solomo het volgende:
hij moet gewoon snel dingen kunnen veranderen, een anderre reden is omdat ik ergens anders voor 3000 pulsen moet geven om iets te laten veranderen en die wil ik in ieder geval binnen 3 seconden hebben en dat lukt me dus niet met die timer :)
Even hard opdenken:
Je wil 3000 pulsen sturen naar je lpt. Je maakt een timer aan in VB die om de 1ms afgevuurd wordt. Vandaar je '3 seconden'. Is er een probleem dat je maar per 1ms 1 byte kan versturen :? Of mag je ook best 3000 bytes in 1 keer dumpen :?

  • solomo
  • Registratie: Juli 2001
  • Niet online

solomo

.....huh?

Topicstarter
ja dat zou eventueel mogelijk zijn :) maar ik vind het met een timer leuker :)
als het niet lukt is het echter een oplossing :)

  • J_Davelaar
  • Registratie: Maart 2001
  • Laatst online: 16-08 20:30
Hallo Ik heb een soortgelijk probleempje.
Ik ben in Excel met Visual basic bezig.
Ik wil een tijd bijhouden en die realtime zien veranderen op het scherm.
bv. door iedere seconde met een event m.n tijd op te hogen.
Ik heb op internet gezocht maar niets kunnen vinden waar ik iets mee kan.
Kan iemand mij helpen?

Was ik maar een punt dan was ik het einde


  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 08-09 17:54

Sponge

Serious Game Developer

timeGetTime is nog accurater dan GetTickCount.
QueryerformanceCounter is dacht ik nauwkeurig tot op de 1^-9 ?

Check de SetTimer api
haha, grappig. ik ben al jaren van mening dat sommige computers/programma's sneller werken als je met je muis bewegingen maakt.
Klopt. Bijv in Windows2k kun je instellen dat "foreground" applications meer cpu cycles krijgen dan de background applications, of andersom

Verwijderd

Een standaard timer gaat maar 18,2 keer per seconde :)
Pagina: 1