<?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=47&amp;t=17839&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-09T11:26:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=17839&amp;mode</id>
<entry>
<author><name><![CDATA[tomasz_bb]]></name></author>
<updated>2017-03-09T11:26:54+01:00</updated>
<published>2017-03-09T11:26:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17839&amp;p=184461#p184461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17839&amp;p=184461#p184461"/>
<title type="html"><![CDATA[Pomoc z rozwiązaniu problemu z dwoma bibliotekami]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17839&amp;p=184461#p184461"><![CDATA[
Witam, Mógłbym prosić o pomoc z rozwiązaniu problemu z dwoma bibliotekami, lub przerobienie tych dwóch bibliotek tak aby przerwania nie kolidowały że sobą? tak mi się wydaje że to chodzi o przerwania.<br /><br />Problem polega na tym że, jak wyłączę: <br />[syntax=cpp]// irrecv.enableIRIn();[/syntax]<br /><br />Komputer rozpoznaje Arduino jako &quot;Urządzenie klawiatury HID&quot; i arduino działa jako klawiatura.<br /><br />Aczkolwiek po włączeniu:<br />[syntax=cpp]irrecv.enableIRIn();[/syntax]<br />komputer wyświetla komunikat &quot;Nie rozpoznano urządzenia USB&quot; program się kompiluje i wgrywa bez żadnych uwag.<br /><br />Kod programu.<br />Płytka to Arduino Nano: <br /><br />[syntax=cpp]//-------------------------------Inicjowanie Biblotek----------------------------------------------------------<br />#include &quot;UsbKeyboard.h&quot;<br />#include &lt;IRremote.h&gt;<br />//-----------------------------------Deklarowanie Zmiennych----------------------------------------------------<br />//----------------------Pilot----------------------------------<br />IRrecv irrecv(11);<br />decode_results results;<br />//-------------------Klawiatura--------------------------------<br />#define PLAY 6<br />#define SSTOP 7<br />#define PAUSE 8<br />#define FORWARD 9<br />#define REVERSE 10<br />#define BYPASS_TIMER_ISR 1<br />int pushF = 0;<br />int pushR = 0;<br />//-------------------------------------------------------------------------------------------------------------<br />void setup() {<br />//--------------------------Pilot------------------------------------<br />Serial.begin(9600);<br />irrecv.enableIRIn();<br />pinMode(12, OUTPUT); // PC ON/OFF<br />pinMode(13, OUTPUT); // DIODA LED<br />pinMode(14, OUTPUT); // PC DVD EJECT<br />//------------------------Klawiatura---------------------------------<br />pinMode(PLAY, INPUT);<br />pinMode(SSTOP, INPUT);<br />pinMode(PAUSE, INPUT);<br />pinMode(FORWARD, INPUT);<br />pinMode(REVERSE, INPUT);<br />digitalWrite(PLAY, HIGH); <br />digitalWrite(SSTOP, HIGH);<br />digitalWrite(PAUSE, HIGH); <br />digitalWrite(FORWARD, HIGH);<br />digitalWrite(REVERSE, HIGH);<br /><br />#if BYPASS_TIMER_ISR<br />TIMSK0&amp;=!(1&lt;&lt;TOIE0); // ++<br />#endif<br />cli();<br /><br />// Force re-enumeration so the host will detect us<br />usbDeviceDisconnect();<br />delayMs(250);<br />usbDeviceConnect();<br /><br />// Set interrupts again<br />sei();<br />}<br /><br />#if BYPASS_TIMER_ISR<br />void delayMs(unsigned int ms) {<br />for (int i = 0; i &lt; ms; i++) {<br />delayMicroseconds(1000);<br />}<br />}<br />#endif<br />//--------------------------------------------------------------------------------------------------------------<br />void loop() {<br />//-------------------------Sterowanie Pilotem---------------------------------------<br />if (irrecv.decode(&amp;results)) {<br />translateIR();<br />// unknownRemoter();<br />irrecv.resume(); // Receive the next value<br />}<br />//-----------------------Klawiatura USB------------------------------------------------<br />UsbKeyboard.update();<br />//digitalWrite(13, !digitalRead(13));<br />if (digitalRead(PLAY) == 0) {<br />UsbKeyboard.sendKeyStroke(KEY_PLAY);<br />Bypass();<br />}<br />if (digitalRead(SSTOP) == 0) {<br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />}<br />if (digitalRead(PAUSE) == 0) {<br />UsbKeyboard.sendKeyStroke(KEY_PAUSE);<br />Bypass();<br />}<br />if (digitalRead(FORWARD) == 0) {pushF ++;}<br />if (digitalRead(FORWARD) == 1) {pushF = 0;}<br />if ( pushF &gt; 1 and pushF &lt; 4 ){<br />UsbKeyboard.sendKeyStroke(KEY_FORWARD);<br />Bypass(); }<br /><br />if ( pushF &gt; 4 ){<br />UsbKeyboard.sendKeyStroke(KEY_FASTFORWARD);<br />Bypass(); }<br />if (digitalRead(REVERSE) == 0) {pushR ++;}<br />if (digitalRead(REVERSE) == 1) {pushR = 0;}<br />if ( pushR &gt; 1 and pushR &lt; 4 ){<br />UsbKeyboard.sendKeyStroke(KEY_REVERSE);<br />Bypass(); }<br />if ( pushR &gt; 4 ){<br />UsbKeyboard.sendKeyStroke(KEY_R);<br />Bypass(); }<br />}<br />//----podejmuje działania na podstawie kodu IR otrzymanych opisując Car MP3 kodów IR-------<br />void translateIR(){<br /><br />switch(results.value){ <br />case 0x20D352AD:// POWER <br />digitalWrite(12, HIGH);<br />delayMs(500);<br />digitalWrite(12, LOW);<br />break;<br />case 0x20D322DD:// EJECT <br />digitalWrite(14, HIGH);<br />delayMs(500);<br />digitalWrite(14, LOW);<br />break;<br />break;<br />case 0x20D3C837:// TV MODE <br />UsbKeyboard.sendKeyStroke(KEY_M);<br />Bypass();<br />break;<br />case 0x20D3F00F:// SETUP <br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D3B24D:// SUSPEND<br />UsbKeyboard.sendKeyStroke(KEY_TAB);<br />Bypass();<br />break;<br />case 0x20D3827D:// 1 <br />UsbKeyboard.sendKeyStroke(KEY_1);<br />Bypass();<br />case 0x20D3C03F:// 2 <br />UsbKeyboard.sendKeyStroke(KEY_2);<br />Bypass();<br />break;<br />case 0x20D342BD:// 3 <br />UsbKeyboard.sendKeyStroke(KEY_3);<br />Bypass();<br />break;<br />case 0x20D3A25D:// 4 <br />UsbKeyboard.sendKeyStroke(KEY_4);<br />Bypass();<br />break;<br />case 0x20D3E01F:// 5 <br />UsbKeyboard.sendKeyStroke(KEY_5);<br />Bypass();<br />break;<br />case 0x20D3629D:// 6 <br />UsbKeyboard.sendKeyStroke(KEY_6);<br />Bypass();<br />break;<br />case 0x20D3AA55:// 7 <br />UsbKeyboard.sendKeyStroke(KEY_7);<br />Bypass();<br />break;<br />case 0x20D3E817:// 8 <br />UsbKeyboard.sendKeyStroke(KEY_8);<br />Bypass();<br />break;<br />case 0x20D36A95:// 9 <br />UsbKeyboard.sendKeyStroke(KEY_9);<br />Bypass();<br />break;<br />case 0x20D3D827:// 0 <br />UsbKeyboard.sendKeyStroke(KEY_0);<br />Bypass();<br />break;<br />case 0x20D39A65:// DELETE <br />UsbKeyboard.sendKeyStroke(KEY_DEL);<br />Bypass();<br />break;<br />case 0x20D35AA5:// CAPS/NUL <br />UsbKeyboard.sendKeyStroke(MOD_CONTROL_LEFT);<br />Bypass();<br />break;<br />case 0x20D3FA05:// VIDEO <br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D37887:// MUSIC<br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D33AC5:// PHOTO <br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D3B847:// ALL<br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D3E21D:// RETURN<br />UsbKeyboard.sendKeyStroke(KEY_BACKSPACE);<br />Bypass();<br />break;<br />case 0x20D3A05F:// SOURCE<br />UsbKeyboard.sendKeyStroke(KEY_J);<br />Bypass();<br />break;<br />case 0x20D3C23D:// LEWO<br />UsbKeyboard.sendKeyStroke(KEY_LEFT);<br />Bypass();<br />break;<br />case 0x20D3807F:// PRAWO<br />UsbKeyboard.sendKeyStroke(KEY_RIGHT);<br />Bypass();<br />break;<br />case 0x20D3609F:// GÓRA<br />UsbKeyboard.sendKeyStroke(KEY_UP);<br />Bypass();<br />break;<br />case 0x20D350AF:// DÓŁ<br />UsbKeyboard.sendKeyStroke(KEY_DOWN);<br />Bypass();<br />break;<br />case 0x20D3D22D:// INFO<br />UsbKeyboard.sendKeyStroke(KEY_I);<br />Bypass();<br />break;<br />case 0x20D332CD:// STOP <br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D3728D :// PAGE UP(VOL+)<br />UsbKeyboard.sendKeyStroke(KEY_PAGEUP);<br />Bypass();<br />break;<br />case 0x20D34AB5 :// PAGE DOWN(VOL-)<br />UsbKeyboard.sendKeyStroke(KEY_PAGEDOWN);<br />Bypass();<br />break;<br />case 0x20D30AF5:// PLAY<br />UsbKeyboard.sendKeyStroke(KEY_PLAY);<br />Bypass();<br />break;<br />case 0x20D32AD5:// PAUSE <br />UsbKeyboard.sendKeyStroke(KEY_PAUSE);<br />Bypass();<br />break;<br />case 0x20D38A75:// MUTE<br />UsbKeyboard.sendKeyStroke(MOD_CONTROL_LEFT);<br />UsbKeyboard.sendKeyStroke(KEY_T);<br />Bypass();<br />break;<br />case 0x20D3708F:// REV <br />UsbKeyboard.sendKeyStroke(KEY_R);<br />Bypass(); <br />break;<br />case 0x20D3B04F:// FWD <br />UsbKeyboard.sendKeyStroke(KEY_F);<br />Bypass(); <br />break;<br />case 0x20D3CA35:// MENU<br />UsbKeyboard.sendKeyStroke(KEY_S);<br />Bypass();<br />break;<br />case 0x20D348B7:// PREV <br />UsbKeyboard.sendKeyStroke(KEY_REVERSE);<br />Bypass();<br />break;<br />case 0x20D38877:// NEXT <br />UsbKeyboard.sendKeyStroke(KEY_FORWARD);<br />Bypass();<br />break;<br />case 0x20D3F20D:// TITLE<br />UsbKeyboard.sendKeyStroke(KEY_N);<br />Bypass();<br />break;<br />case 0x20D3EA15:// REPEAT<br />UsbKeyboard.sendKeyStroke(KEY_E);<br />Bypass();<br />break;<br />case 0x20D3A857:// SLOW<br />UsbKeyboard.sendKeyStroke(KEY_ESC);<br />Bypass();<br />break;<br />case 0x20D36897:// ANGLE<br />UsbKeyboard.sendKeyStroke(KEY_BACKSLASH);<br />Bypass();<br />break;<br />case 0x20D358A7:// AUDIO<br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />case 0x20D31AE5:// SUBTITLE<br />UsbKeyboard.sendKeyStroke(KEY_T);<br />Bypass();<br />break;<br />case 0x20D39867:// ZOOM<br />UsbKeyboard.sendKeyStroke(KEY_Z);<br />Bypass();<br />break;<br />case 0x20D340BF:// ENTER<br />UsbKeyboard.sendKeyStroke(KEY_ENTER);<br />Bypass();<br />break;<br />case 0x20D3906F:// HOME(A-B)<br />UsbKeyboard.sendKeyStroke(KEY_HOME);<br />Bypass();<br />break;<br />case 0x20D312ED:// FILE MODE<br />UsbKeyboard.sendKeyStroke(KEY_C);<br />Bypass();<br />break;<br />case 0x20D3DA25:// TIME SEEK<br />UsbKeyboard.sendKeyStroke(KEY_SSTOP);<br />Bypass();<br />break;<br />default:<br />Serial.print(&quot; ZA DŁUGO WCIŚNIĘTY PRZYCISK PILOTA &quot;);<br />Serial.println(results.value, HEX);<br />}<br />delayMs(100);<br />}<br />//--------------------------------------------------------------------------------------------------------------<br />void Bypass(){<br />#if BYPASS_TIMER_ISR <br />delayMs(200);<br />#else<br />delay(130);<br />#endif<br />}[/syntax]<br /><br />Uwaga! biblioteka V-USB USBKeyboard działa na arduino ide do 1.0.6<br /><a href="https://www.arduino.cc/en/Main/OldSoftwareReleases"  class="postlink">https://www.arduino.cc/en/Main/OldSoftwareReleases</a><br /><br />W załączniku biblioteki.<br />Proszę o waszą pomoc.<br /><a href="https://obrazkiforum.atnel.pl/12531/5a5f95f48032bf828846cead89eb4615.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/12531/5a5f95f48032bf828846cead89eb4615.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12531">tomasz_bb</a> — 9 mar 2017, o 11:26</p><hr />
]]></content>
</entry>
</feed>