<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-2" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Arial CE" size=2>Vazeny kolegovia mam RH5.1 (driver pre jednu z 
mojich kariet na riadenie motorov je modul pre jadra 2.0.x a novsi nie je) a 
velmi divny problem:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial CE" size=2>rutina ktora sa ma spustat casovacom a ukoncit 
priebeh testu je nasledovna</FONT></DIV>
<DIV><FONT size=2>
<P>void tim(int i)</P>
<P>{</P>
<P>write(2,"uz koncim",9);</P>
<P>stop=1;</P>
<P>}</P>
<P><FONT face="Arial CE">vo funkcii main je kus kodu</FONT></P>
<P>&nbsp;</P><FONT size=2>
<P>if (argc&lt;2) {cas_prace=10;printf("cas prace=%ld",cas_prace);}</P>
<P>else{cas_prace=(long)atoi(argv[1]);printf("cas_prace=%ld",cas_prace);}</P>
<P>act.sa_handler=tim;</P>
<P>//act.sa_mask=0;</P>
<P>act.sa_restorer=NULL;</P>
<P>act.sa_flags=SA_RESTART;</P>
<P>do{</P>
<P>pomoc=sigaction(SIGALRM,&amp;act,&amp;old);</P>
<P>}while(pomoc!=0);</P></FONT>
<P><FONT face="Arial CE">ktory nastavi cas priebehu testu defualt 10 a prida 
obsluznu rutinu k SIGALRM</FONT></P>
<P><FONT face="Arial CE">za nou je</FONT></P><FONT size=2>
<P>itime.it_value.tv_sec=(long)cas_prace;</P>
<P>sprintf(str,"%ld",itime.it_value.tv_sec);</P>
<P>write(2,str,2);</P>
<P>do{</P>
<P>pomoc=setitimer(ITIMER_REAL,&amp;itime,NULL);</P>
<P>}while(pomoc!=0);</P>
<P>starttime=time(NULL);</P>
<P>while (stop==0)</P>
<P>{curtime=time(NULL);</P>
<P><FONT face="Arial CE">...</FONT></P>
<P><FONT face="Arial CE">....</FONT></P>
<P><FONT face="Arial CE">}</FONT></P>
<P>&nbsp;</P>
<P><FONT face="Arial CE">co je nastavenie timer-a,pre ukoncenie testu a 
</FONT></P>
<P><FONT face="Arial CE">&nbsp;cyklus,v ktorom sa vykonava test rychlosti 
driver-a (karta ma v LINUX-e&nbsp; odozvu 7,5-8,9ms na rozdiel od NT4.0SP6a, kde 
je odozva viac ako 300 ms!!!!)...</FONT></P>
<P><FONT face="Arial CE">A teraz ten problem </FONT></P>
<P><FONT face="Arial CE">pri&nbsp;spusteni programu bez 
parametrov&nbsp;</FONT><FONT face="Arial CE">sa test po 10s zastavi,ale pri 
spusteni&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s parametrom 10 (a.out 
10) sa test nezastavi, pricom sa ani nevykona rutina tim!!!!!&nbsp; Je to o to 
zaujimavejsie, ze pri oboch pripadoch</FONT><FONT face="Arial CE"> skor uvedeny 
kod</P>
<P>sprintf(str,"%ld",itime.it_value.tv_sec);</P>
<P>write(2,str,2);</P>
<P>&nbsp;</P>
<P>dava na stderr cislo 10,ako ma....</P>
<P>Neviete mi niekto,prosim, poradit?</P>
<P>Som z toho jelen....</P>
<P>kompilacia ak mate driver</P>
<P>gcc pokus.c -lacs0 -lacs2</P>
<P>Dakujem za kazdu pomoc,mozno som prehliadol nejaky parameter, alebo uz 
neviem... Nechcem vyhodit casovac, lebo vysledny projekt bude mat kopu casovacov 
a chcel som si otestovat ich funkcnost...</P>
<P>&nbsp;</P>
<P>S pozdravom</P>
<P>&nbsp;</P>
<P>Peter Fodrek</P>
<P>P.S. cely kod prilozeny, v cykle printf</P>
<P>&nbsp;</P>
<P>&nbsp;</P></FONT></FONT></FONT></DIV></BODY></HTML>