<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=16880&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-26T07:00:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16880&amp;mode</id>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2016-11-26T07:00:36+01:00</updated>
<published>2016-11-26T07:00:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175683#p175683</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175683#p175683"/>
<title type="html"><![CDATA[Re: V-USB, pytanie o transisję kontrolną i przerwaniową.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175683#p175683"><![CDATA[
A czytałeś moje poradniki o V-USB? Tam będziesz miał wytłumaczone jak można wysyłać dane i dlaczego tak też. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />A jak nie tam to na pewno w oficjalnym manualu, z którego ja się uczyłem o V-USB<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 26 lis 2016, o 07:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tunik]]></name></author>
<updated>2016-11-23T12:20:22+01:00</updated>
<published>2016-11-23T12:20:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175434#p175434</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175434#p175434"/>
<title type="html"><![CDATA[V-USB, pytanie o transisję kontrolną i przerwaniową.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16880&amp;p=175434#p175434"><![CDATA[
Witam,<br />Zbudowałem kontroler do gier USB klasy HID. Gdy przyszedł czas na jego oprogramowanie, znalazłem podobny projekt w którym znalazłem taki oto kod:<br /><br />[syntax=c]usbMsgLen_t usbFunctionSetup(uchar data&#91;8&#93;)<br />{<br />    usbRequest_t *req = (void *)data;<br />    switch(req-&gt;bmRequestType &amp; USBRQ_TYPE_MASK) {<br />    case USBRQ_TYPE_CLASS:<br />        switch(req-&gt;bRequest) {<br />        case USBRQ_HID_GET_REPORT:<br />            usbMsgPtr = (void *)&amp;hid_report;<br />            return sizeof(hid_report);<br />        case USBRQ_HID_GET_IDLE:<br />            usbMsgPtr = &amp;idleRate;<br />            return 1;<br />        case USBRQ_HID_SET_IDLE:<br />            idleRate = req-&gt;wValue.bytes&#91;1&#93;;<br />            break;<br />        }<br />        break;<br /><br />    default:<br />        return 0;<br />    }<br />    return 0;<br />}[/syntax]<br /><br /><br />[syntax=c]while(1) {<br />        wdt_reset();<br />        usbPoll();<br />        if(usbInterruptIsReady()) {<br />            pollButtons();<br />            pollSticks();<br />            usbSetInterrupt((void *)&amp;hid_report, sizeof(hid_report));<br />        }<br />    }[/syntax]<br /><br /><br />Jak rozumiem, pierwszy fragment realizuje transmisje kontrolną, natomiast drugi przerwaniową. Wiem że każde urządzenie musi posiadać zaimplementowany transfer kontrolny, ale jak to się dzieje w tym programie, urządzenie wysyła dane za pomocą transferu przerwaniowego a nie kontrolnego (bo taka możliwość rozumiem też jest możliwa)? Funcka usbFunctionSetup jest wywoływana gdy komputer wysyła żądania i w zależności od żądania wykonywany jest któryś z &quot;case&quot;. Jednym z nich jest rozkaz USBRQ_HID_GET_REPORT gdzie jeśli dobrze widzę wysyłane są do komputera dane. hid_report to struktura w której zawarte są dane o przyciskach i joysticka'ch w kontrolerze.<br /><br />Czy ktoś jest w stanie mi to wytłumaczyć? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14443">tunik</a> — 23 lis 2016, o 12:20</p><hr />
]]></content>
</entry>
</feed>