» Poradna » Programy

Visual basic

 |   | 

Ahoj! Zase bych potřeboval něco poradit: Pomocí timeru spouštím v pravidlených intervalech proces - měření teploty. Změření teploty však trvá nějakou dobu (sekundy) a tím dochází k posunu - timer změří přesně 60.000 milisekund, pak provede měření (to nějakou dobu trvá) a pak teprve začně měřit zase 60.000 milisekund. Tak jsem to alespoň vypozoroval. Chci aby se teplota měřila v každou celou minutu. Jsem z toho jelen. Poradíte někdo prosím, jak napsat začátek měření např. v každou celou minutu?

Mohlo by vás také zajímat

Odpovědi na otázku

 |   | 

skus nepouzivat timer ten je aj tak naprd, precitaj si cas a ked je pocet sekund 0 tak pusti tu potvoru. Najlepsie ked to rozdelis do dvoch vlaken - v jednom meras cas a vdruhom bezi potvora

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | 

Tak třeba řešení které mě teď napadlo: Použij dva timery. V timeru1 v minutových intervalech povol timer2 (timer2.enabled=true) nic víc. V timeru dva si nastav nejmenší možnou prodlevu (1 ms). V události timeru2 nejprve timer2 vypni (timer2.enabled=false) a potom spusť kód měření teploty. Takto by mělo vše fungovat, tedy pokud měření teploty trvá méně než minutu, to ovšem předpokládám.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | 

Po kazdym mereni zmen cas timeru podle zbyvajicich sekund do cele minuty.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | 

Takove veci se nedelaji v multithreadovem prostredi.
Timmery jsou zalozeny na zpravach Jamile ti nejaka aplikace zatizi procesor, klidne se ti zpracovani zpozdi.
Program bude fungovat, ale nesmis pocitat s presnosti na desitky ms.

Aby ti to nezatezovalo prostredi, tak muzes mit program, v nem bude bezet vlakno s nizkou prioritou, ktere bude kontrolovat cas. Po uplynuti minuty spustis dalsi vlano, ktere provede mereni.
Jen ta prace s vlakny ve VB neni uplne jednoducha...

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Měření teploty, Timer