<div dir="auto">Vzhledem k tomu, že se jedná o jednoduchy "rezidentni" program, který jenom čeká na stisk tlacitka a na základě toho spustí jiny program (nebo provede jeho kill) tak to asi nebudu komplikovat. Pokud by se jednalo o tlacitko kde by záleželo na každé ms tak bych musel uvažovat o nějaké podobné metodě. Ale děkuji za info. Možná skončím jenom u usleep(200000) což je ještě vyhovující z obou stran (prostředky vs odezva)... Ale je dobré vědět, jaké jsou další možnosti (v podstatě jsem na ně ani nenarazil, když jsem hledal metody odchyceni stisku tlacitka). Dekuji.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Dne so 18. 9. 2021 21:12 uživatel Miroslav Mraz <<a href="mailto:mrazik@volny.cz">mrazik@volny.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Nevím jak je to napsané, ale pokud to čtení má vlastní vlákno, pak by <br>
snad mohlo pomoci místo usleep() použít něco jako <br>
std::this_thread::yield(), příp. sched_yield(), což ukončí běh vlákna a <br>
vrátí řízení plánovači a další čtení proběhne až plánovač opět vlákno <br>
spustí. Ale pořád to může sežrat dost procesorového času, možná je ten <br>
select čistší řešení, ale je to pracné a dneska už to zas tak moc <br>
nefrčí, spíš se používají ta vlákna (máme hodně jader, tak proč ne).<br>
<br>
Mrazík<br>
<br>
Dne 18. 09. 21 v 15:20 Michal Grunt napsal(a):<br>
> Vyzkouším to, děkuji. To bude asi ono.<br>
> <br>
> Dne pá 17. 9. 2021 16:02 uživatel Ladislav Vaiz <<a href="mailto:spam@nagano.cz" target="_blank" rel="noreferrer">spam@nagano.cz</a> <br>
> <mailto:<a href="mailto:spam@nagano.cz" target="_blank" rel="noreferrer">spam@nagano.cz</a>>> napsal:<br>
> <br>
>     Správné řešení pod linuxem je volat v hlavní smyčce select(). Tomu se<br>
>     předají filedescriptory, ze kterých chci číst, do kterých chci<br>
>     zapisovat<br>
>     a případný timeout pro nejbližší časovač.<br>
> <br>
>     U GPIO se otevře soubor  .../value a jeho descriptor se přidá do<br>
>     readfds<br>
>     selectu. V obsluze pak:<br>
>     lseek(gpio->value_fd, 0, SEEK_SET);<br>
>     read(gpio->value_fd, buf, 1);<br>
> <br>
>     L.<br>
> <br>
> <br>
>     Dne 17.09.2021 v 13:15 Michal Grunt napsal(a):<br>
>      > Tak usleep(1) moc nepomůže. Vyžere to 100% CPU. Když zadám<br>
_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank" rel="noreferrer">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>