Hi, A few things to check: - How come you can use the same pin for MISO and MOSI? It shouldn't be valid... Use something else for MISO. - Try changing the second writeRead to writeReadAsync and wrap both calls between a ioio_.beginBatch() / ioio_.endBatch() block.
On Sun, Jan 12, 2014 at 9:18 PM, dakman05 <[email protected]> wrote: > Hey Ytai and IOIO Community! > > Hope all is well. Having a problem with my IOIO-OTG ( Hardware ID: > SPRK0020 Bootloader ID: IOIO0400 Firmware ID: IOIO0330) ... > > So I have a WS2801 LED strip and I am using SPI to creating a unique green > animation lighting effect... > > Essentially I played around with HolidayIOIO and was able to figure out > how to control the LED strip .. > > It works like a charm via bluetooth but the following functions are > flickering when directly connected via ADB... Same set of code is working > completely different on BT vs ADB... In bluetooth it works great no > flickering.. with ADB its as if the clock / timing is off... I tried > adjusting the SPI Rate and still no cigar... > See below > > Any help / suggestions is much appreciated! > > -Dave > > In setup: > > > * spi_ = ioio_.openSpiMaster(4, 4, 5, 6, SpiMaster.Rate.RATE_50K);* > > >> *public void greenAnimation() throws ConnectionLostException, >> *InterruptedException >> { >> new Thread(new Runnable() { >> public void run() { >> int i = 0; >> try { >> clear(0, 31); >> >> while (i < 25) { >> >> Thread.sleep(25); >> >> >> >> >> *if ( i >= 0 && i < 24) {green(0, i);}* >> Thread.sleep(25); >> i++; >> } >> >> Thread.sleep(20000); >> run(); >> } catch (InterruptedException e) { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } catch (ConnectionLostException e) { >> // TODO Auto-generated catch block >> e.printStackTrace(); >> } >> } >> }).start(); >> } > > > > *private void setLed(int num, RGB rgb) {* > > // Find the right buffer to write to (first or second half). > > byte[] buffer; > > if (num >= 16) { > > buffer = buffer2_; > > num -= 16; > > } else { > > buffer = buffer1_; > > } > > num *= 3; > > if (rgb.r == 0 && rgb.g == 0 && rgb.b == 0) { > > fadeOut(buffer, num++); > > fadeOut(buffer, num++); > > fadeOut(buffer, num++); > > } else { > > // Poor-man's white balanace :) > > buffer[num++] = rgb.r; > > buffer[num++] = rgb.g; > > buffer[num++] = rgb.b; > > } > > } > > > *public void green(int start, int end)* > > throws ConnectionLostException { > > try { > > for (int i = start; i < end; i++) { > > color.clear(); > > color.r = (byte) 0; > > color.g = (byte) 255; > > color.b = (byte) 0; > > setLed(i, color); > > } > > spi_.writeReadAsync(0, buffer1_, buffer1_.length, > > buffer1_.length, null, 0); > > spi_.writeRead(buffer2_, buffer2_.length, buffer2_.length, > > null, 0); > > Thread.sleep(50); > > } catch (InterruptedException e1) { > > } > } > > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/ioio-users. > For more options, visit https://groups.google.com/groups/opt_out. > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/groups/opt_out.
