What does the log say? On May 18, 2017 1:12 PM, <dhanunjay...@gmail.com> wrote:
> Hi, > > I have tried to implement the SPI master using the example HELLOIOIO > SPI example. My application is terminating (It says ioio disconnected ) on > toggling the button. > > Here is my looper code > > class Looper extends BaseIOIOLooper { > /** The on-board LED. */ > private DigitalOutput led_; > private SpiMaster SPI; > > int[] slaves = new int[]{0,1,2}; > int[] SS_PINS = new int[]{45,46,47}; > static final int MISO_ = 3; > static final int MOSI_ = 4; > static final int CLCK_ = 5; > final int DATA_SIZE = 19; > byte[] request = new byte[5]; > byte[] response = new byte[5]; > byte[] incoming = new byte[DATA_SIZE+1]; > /** > * Called every time a connection with IOIO has been > established. > * Typically used to open pins. > * > * > * @throws ConnectionLostException > * When IOIO connection is lost. > * > * @see ioio.lib.util.IOIOLooper#setup() > */ > @Override > protected void setup() throws ConnectionLostException { > showVersions(ioio_, "IOIO connected!"); > > //Lite the LED > led_ = ioio_.openDigitalOutput(0, true); > > //open SPI Master here > //SPI = ioio_.openSpiMaster(MISO_,MOSI > _,CLCK_,SS_PINS,SpiMaster.Rate.RATE_4M); > SPI = ioio_.openSpiMaster(new DigitalInput.Spec(MISO_, > Mode.PULL_UP), new > DigitalOutput.Spec(MOSI_), > new DigitalOutput.Spec(CLCK_), > new DigitalOutput.Spec[] { new > DigitalOutput.Spec(SS_PINS[0]) }, > new SpiMaster.Config(SpiMaster.Rate.RATE_125K, > true, true)); > > > request = new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05 }; > enableUi(true); > > if(button_.isChecked()){ > //led_.write(!button_.isChecked()); > //just read from slave on pin 45 > try{ > SPI.writeRead(slaves[0],request, > request.length,1, response, response.length); > } > catch (ConnectionLostException e) { > e.printStackTrace(); > } > catch (InterruptedException e) { > e.printStackTrace(); > } > incoming[request[0]] = response[0]; > } > } > > /** > * Called repetitively while the IOIO is connected. > * > * @throws ConnectionLostException > * When IOIO connection is lost. > * @throws InterruptedException > * When the IOIO thread has been interrupted. > * > * @see ioio.lib.util.IOIOLooper#loop() > */ > @Override > public void loop() throws ConnectionLostException, > InterruptedException { > > try { > led_.write(false); > Thread.sleep(100); > led_.write(true); > Thread.sleep(100); > if(button_.isChecked()){ > led_.write(true); > //just read from slave on pin 45 > try{ > SPI.writeRead(slaves[0],request, > request.length,1, response, response.length); > } > catch (ConnectionLostException e) { > e.printStackTrace(); > } > catch (InterruptedException e) { > e.printStackTrace(); > } > incoming[request[0]] = response[0]; > } > } > catch (InterruptedException e) { > } > } > > /** > * Called when the IOIO is disconnected. > * > * @see ioio.lib.util.IOIOLooper#disconnected() > */ > @Override > public void disconnected() { > enableUi(false); > toast("IOIO disconnected"); > } > > /** > * Called when the IOIO is connected, but has an incompatible > firmware version. > * > * @see ioio.lib.util.IOIOLooper#incompatible(IOIO) > */ > @Override > public void incompatible() { > showVersions(ioio_, "Incompatible firmware version!"); > } > } > > I would like to know the whether writeread is a blocking function call or > not. > Is there any way to test the working of SPI master with out slave. > Something like using Oscilloscope. > > > Thanks in advance > > -- > You received this message because you are subscribed to the Google Groups > "ioio-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to ioio-users+unsubscr...@googlegroups.com. > To post to this group, send email to ioio-users@googlegroups.com. > Visit this group at https://groups.google.com/group/ioio-users. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to ioio-users+unsubscr...@googlegroups.com. To post to this group, send email to ioio-users@googlegroups.com. Visit this group at https://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.