<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hello, could someone help me pass this code to a single core M5stack?  Thanks]]></title><description><![CDATA[<p dir="auto">#include &lt;Mouse.h&gt;</p>
<p dir="auto">float pulsesX, moveX,mouseX, lastPulsesX, XA_SIG=0, XB_SIG=1, pulsesY, moveY,mouseY, lastPulsesY, YA_SIG=0, YB_SIG=1;<br />
int wheelsSpeed;<br />
float panSpeed[4];<br />
float tiltSpeed[4];<br />
boolean buttonState, lastButtonState;</p>
<p dir="auto">void setup(){<br />
attachInterrupt(1, XA_RISE, RISING); // Pin 2<br />
attachInterrupt(0, XB_RISE, RISING); // Pin 3<br />
attachInterrupt(2, YA_RISE, RISING); // Pin 0<br />
attachInterrupt(3, YB_RISE, RISING); // Pin 1<br />
pinMode (8, INPUT_PULLUP); // pushButton<br />
Mouse.begin();<br />
Serial.begin(115200);<br />
delay(100);<br />
Serial.println("Connected");</p>
<p dir="auto">// Defining speed coeff to match Arrihead II<br />
panSpeed[1] = 9.71;<br />
panSpeed[2] = 5.1;<br />
panSpeed[3] = 2.84;</p>
<p dir="auto">tiltSpeed[1] = 12.45;<br />
tiltSpeed[2] = 6.58;<br />
tiltSpeed[3] = 3.38;</p>
<p dir="auto">wheelsSpeed = 1; // Default speed when rebooting the arduino<br />
}</p>
<p dir="auto">void loop(){</p>
<p dir="auto">buttonState=digitalRead(8); // Speed selection pushbutton</p>
<p dir="auto">if ( buttonState != lastButtonState &amp;&amp; buttonState == 0) {<br />
wheelsSpeed = wheelsSpeed +1;<br />
if (wheelsSpeed &gt;= 4) {<br />
wheelsSpeed = 1;<br />
}<br />
}</p>
<p dir="auto">// Calculating wheels movement<br />
moveX = lastPulsesX - pulsesX;<br />
moveY = pulsesY - lastPulsesY;</p>
<p dir="auto">// Mapping to the Arrihead speed<br />
mouseX = moveX / panSpeed[wheelsSpeed];<br />
mouseY = moveY / tiltSpeed[wheelsSpeed];</p>
<p dir="auto">Mouse.move (mouseX, mouseY);</p>
<p dir="auto">Serial.print("x");<br />
Serial.print(wheelsSpeed);<br />
Serial.print("y");<br />
Serial.print(pulsesY);<br />
Serial.println("end");</p>
<p dir="auto">lastPulsesX = pulsesX; // Storing last value for X movement<br />
lastPulsesY = pulsesY; // Storing last value for Y movement<br />
lastButtonState = buttonState;</p>
<p dir="auto">delay(20);</p>
<p dir="auto">}</p>
<p dir="auto">//X-Axis</p>
<p dir="auto">void XA_RISE(){<br />
detachInterrupt(1);<br />
//delay(1);<br />
XA_SIG=1;</p>
<p dir="auto">if(XB_SIG==0)<br />
pulsesX++;//moving forward<br />
if(XB_SIG==1)<br />
pulsesX--;//moving reverse</p>
<p dir="auto">attachInterrupt(1, XA_FALL, FALLING);<br />
}</p>
<p dir="auto">void XA_FALL(){<br />
detachInterrupt(1);<br />
//delay(1);<br />
XA_SIG=0;</p>
<p dir="auto">if(XB_SIG==1)<br />
pulsesX++;//moving forward<br />
if(XB_SIG==0)<br />
pulsesX--;//moving reverse</p>
<p dir="auto">attachInterrupt(1, XA_RISE, RISING);<br />
}</p>
<p dir="auto">void XB_RISE(){<br />
detachInterrupt(0);<br />
//delay(1);<br />
XB_SIG=1;</p>
<p dir="auto">if(XA_SIG==1)<br />
pulsesX++;//moving forward<br />
if(XA_SIG==0)<br />
pulsesX--;//moving reverse</p>
<p dir="auto">attachInterrupt(0, XB_FALL, FALLING);<br />
}</p>
<p dir="auto">void XB_FALL(){<br />
detachInterrupt(0);<br />
//delay(1);<br />
XB_SIG=0;</p>
<p dir="auto">if(XA_SIG==0)<br />
pulsesX++;//moving forward<br />
if(XA_SIG==1)<br />
pulsesX--;//moving reverse</p>
<p dir="auto">attachInterrupt(0, XB_RISE, RISING);<br />
}</p>
<p dir="auto">//Y-Axis</p>
<p dir="auto">void YA_RISE(){<br />
detachInterrupt(2);<br />
//delay(1);<br />
YA_SIG=1;</p>
<p dir="auto">if(YB_SIG==0)<br />
pulsesY++;//moving forward<br />
if(YB_SIG==1)<br />
pulsesY--;//moving reverse</p>
<p dir="auto">attachInterrupt(2, YA_FALL, FALLING);<br />
}</p>
<p dir="auto">void YA_FALL(){<br />
detachInterrupt(2);<br />
//delay(1);<br />
YA_SIG=0;</p>
<p dir="auto">if(YB_SIG==1)<br />
pulsesY++;//moving forward<br />
if(YB_SIG==0)<br />
pulsesY--;//moving reverse</p>
<p dir="auto">attachInterrupt(2, YA_RISE, RISING);<br />
}</p>
<p dir="auto">void YB_RISE(){<br />
detachInterrupt(3);<br />
//delay(1);<br />
YB_SIG=1;</p>
<p dir="auto">if(YA_SIG==1)<br />
pulsesY++;//moving forward<br />
if(YA_SIG==0)<br />
pulsesY--;//moving reverse</p>
<p dir="auto">attachInterrupt(3, YB_FALL, FALLING);<br />
}</p>
<p dir="auto">void YB_FALL(){<br />
detachInterrupt(3);<br />
//delay(1);<br />
YB_SIG=0;</p>
<p dir="auto">if(YA_SIG==0)<br />
pulsesY++;//moving forward<br />
if(YA_SIG==1)<br />
pulsesY--;//moving reverse</p>
<p dir="auto">attachInterrupt(3, YB_RISE, RISING);<br />
}</p>
]]></description><link>https://community.m5stack.com/topic/4926/hello-could-someone-help-me-pass-this-code-to-a-single-core-m5stack-thanks</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 16:41:36 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/4926.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Dec 2022 03:54:55 GMT</pubDate><ttl>60</ttl></channel></rss>