[ rsinisa @ 15.10.2002. 00:06 ] @
Pravim program koji komunicira sa spoljnim hardverom i ceka povratnu informaciju. Da ne bi cekao beskonacno u slucaju da nema odziva, hteo sam da upotrebim tajmer tako sto neposredno pre cekanja odziva postavim kontrolnu promenljivu na 0, ukljucim tajmer, i u tajmer rutini promenim vrednost promenljive. U petlji ispitujem ima li odziva, a takodje ispitujem i vrednost kontrolne promenljive, koja bi trebalo da se promeni ako je proteklo zadato vreme (konkretno 1000 ms) pre odziva. Medjutim, testovima sam ustanovio da se tajmer ponasa kao da nije ni ukljucen. Evo tog dela programa: TimeOut = 0 ' kontrolna promenljiva tmr1.Enabled = True ' tajmer je podesen na 1000 ms Do Until Inp(regin) = 0 ' provera odziva If TimeOut = 1 Then ' ako je promenljiva=1, izadji zi petlje msg = MsgBox("Hardware timeout", vbOKOnly + vbCritical) Out (regout), 0 tmr1.Enabled = False Exit Sub End If Loop A evo i tajmer rutine: Private Sub tmr1_Timer() TimeOut = 1 ' promeni vrednost kontrolne promenljive End Sub Kao sto rekoh, program se vrti u Do .. Loop petlji, ali se tajmer rutina uopste ne izvrsi. Kada tajmer aktiviram posebnim komadnim dugmetom, tajmer radi. Gde je greska? A mozda postoji i bolje resenje za ovo sto mi je potrebno? Pozdrav. Sinisha |