Periodicke spousteni – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Periodicke spousteni – C / C++ – Fórum – Programujte.comPeriodicke spousteni – C / C++ – Fórum – Programujte.com

 

imaj0
Duch
13. 4. 2009   #1
-
0
-

Ahoj, mam dotaz na vytvoreni nejake periodicke funkce.
Mam merici kartu a tou merim (nactu vstup a pres regulator menim vystup).
A potrebuju vytvorit nejaky spoustec (generator), ktery bude periodicky spoustet (napr. kazdych 100ms) ten merici cyklus (nacte vstup a pres regulator zmeni vystup).
Uz sem to zkousel pres nejake Sleep funkce, ktere sem dal do toho cyklu mereni, ale ty mi nezaruci, ze se to bude spoustet pravidelne co urcitou dobu.

Nevite nekdo jak na to?

Nahlásit jako SPAM
IP: 81.30.255.–
KIIV
~ Moderátor
+43
God of flame
13. 4. 2009   #2
-
0
-

To imaj : nejsem si jist jestli je to ono, ale jsou i takzvany alarmy... ty by se taky mozna daly pouzit...
a v jednocipu by to byl kazdopadne timer a preruseni

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Quiark0
Věrný člen
13. 4. 2009   #3
-
0
-

Co konkrétně ti Sleep dělalo? V kolika ms, ns se to neshodovalo s tvým očekáváním? Nestačilo by uspat se na kratší dobu a zbytek počkat prostě v cyklu kontrolou hodin?



while (gettime() == cas_co_chci) {
// nic
}


Pokud to chceš mít hoooodně přesně, tak taky můžeš narazit na omezení operačního systému, kdy se prostě rozhodne, že v okamžik, kdy potřebuješ měřit, tvému procesu nepřidělí CPU. To bys potom musel hledat realtime OS.

Nahlásit jako SPAM
IP: 89.102.6.–
Atmegauser
~ Anonymní uživatel
2 příspěvky
13. 4. 2009   #4
-
0
-

Jedna sa o jednocip ci o OS?(widnows/linux/etc)

v jednocipe as to da riesit ako napisal KIIV, popripade brutal, a to _delay_(), ale ta zbytocne zerie procesorovy cas...

Nahlásit jako SPAM
IP: 89.173.75.–
imaj0
Duch
14. 4. 2009   #5
-
0
-

To Atmegauser : Jedna se o windows + RTX (to je doplnek OS o realny cas, vytvori to subsystem realneho casu), takze procesy, ktere bezi pod RTX, tak bezi nezavisle na windows. http://msdn.microsoft.com/en-us/library/ms838340.aspx

To casovani by melo byt v jednotkach milisekund, ale tim RTX se muzu dostat i na jednotky nanosekund (ono je to hodne rychle, ale pri rychlosti v nanosekundach uz narazim na moznosti merici karty, protoze zatim pristupuju primo na tu kartu I/O, jeste uvazuju ze by sem pouzil MEM (pametovy) pristup).

S tim sleepem je problem, ze pokud nastavim periodu mereni hodne malou, tak to mereni muze trvat ruzne dlouho a tim padem nedodrzim pozadovanou periodu. Sem to chtel realizovat pres hodiny a k tem by se postupne pripocitaval periodu a spoustel mereni, ale tam je prave problem, ze pokud prekrocim cas te periody, tak se to uz nespusti, protoze to bude cekat na cas, ktery uz byl (cas + 1 perioda = spust mereni....).

Nahlásit jako SPAM
IP: 158.196.65.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 107 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý