<div dir="auto">Vyzkouším to, děkuji. To bude asi ono.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Dne pá 17. 9. 2021 16:02 uživatel Ladislav Vaiz <<a href="mailto:spam@nagano.cz">spam@nagano.cz</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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 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 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>
> usleep(50000) tak už je to snesitelnějších cca 1.6%. Ale stejně je mi<br>
> proti srsti, aby tak jednoduchý program, který čeká na stisk klávesy<br>
> sežral takových prostředků. Kdyby takto fungovala klasická klávesnice<br>
> tak by z toho asi nikdo radost neměl. Ano mohu zadat větší číslo jako<br>
> parametr, ale už tam bude znatelná prodleva stisk/akce.<br>
><br>
> so 10. 7. 2021 v 20:56 odesílatel Michal Vanka <<a href="mailto:junk.mv@gmail.com" target="_blank" rel="noreferrer">junk.mv@gmail.com</a>> napsal:<br>
>> Za mych mladych Linuxovych let volani usleep(1) na Intel procesorech odevzdalo proces scheduleru,<br>
>> ten si udelal svoje veci a po nejake dobe (myslim, ze to bylo kolem 15 milisekund) se k procesu opet vratil.<br>
>> Cili, obsluha tlacitka nezatezujici procesor by mohla vypadat takto: while(1) { obsluhaTlacitka(); usleep(1); }<br>
>><br>
>> Dle odkazu zde:<br>
>><br>
>> <a href="https://www.raspberrypi.org/forums/viewtopic.php?t=80705" rel="noreferrer noreferrer" target="_blank">https://www.raspberrypi.org/forums/viewtopic.php?t=80705</a><br>
>>> the minimum time it would take is in the order of 100µS<br>
>> by to na raspi melo byt cekat 100us a principialne by to melo fungovat stejne (ale nemam overeno).<br>
>> Michal<br>
>><br>
>><br>
>><br>
>> On Sat, Jul 10, 2021 at 7:18 PM Jindroush <<a href="mailto:jindroush@seznam.cz" target="_blank" rel="noreferrer">jindroush@seznam.cz</a>> wrote:<br>
>>> On 10.07.2021 18:50, Michal Grunt wrote:<br>
>>>> Mám napsany v C jednoduchý program, který na RPi sleduje jedno GPIO<br>
>>>> (kde je tlacitko) a při jeho stisknutí vygeneruje zmacknuti virtuální<br>
>>>> klávesy třeba X. Funguje to, ale jak to napsat tak, aby to<br>
>>>> nezatezovalo moc procesor? Mám tam nekonečnou smyčku kde sleduji GPIO,<br>
>>>> ale pokud do té smyčky nedám delay třeba 200ms tak to sežere snad<br>
>>>> všechen CPU čas a nebo je to dost náročný (už si to přesně<br>
>>>> nepamatuji). Ale zase s těmi 200ms je to zmacknuti detekování se<br>
>>>> zpožděním... Jak ten stav GPIO detekovat bez zpoždění a s minimální<br>
>>>> zátěží CPU?<br>
>>>><br>
>>> Pogoogleni povidalo neco o tom, ze lze nektere GPIO nastavit na interrupt.<br>
>>> <a href="https://raspberrypi.stackexchange.com/questions/89072/is-there-a-way-to-use-interrupt-driven-gpio-input-through-the-sysfs-interface-wi" rel="noreferrer noreferrer" target="_blank">https://raspberrypi.stackexchange.com/questions/89072/is-there-a-way-to-use-interrupt-driven-gpio-input-through-the-sysfs-interface-wi</a><br>
>>> neco i zde<br>
>>> <a href="http://raspberrypi-aa.github.io/session2/input.html" rel="noreferrer noreferrer" target="_blank">http://raspberrypi-aa.github.io/session2/input.html</a><br>
>>><br>
>>> --<br>
>>> Jindroush <<a href="mailto:jindroush@seznam.cz" target="_blank" rel="noreferrer">jindroush@seznam.cz</a>><br>
>>><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>
>> _______________________________________________<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>
> _______________________________________________<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>
<br>
<br>
<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>