1. You've missed my comment about using FREQ mode instead of POSITIVE. 2. You cannot assume anything about a pin's state when it is disconnected, unless you're pulling it. You can open the PulseInput with PULL_DOWN or PULL_UP instead of using the default pin spec (which doesn't pull either way). What you're seeing might simply be cross-talk resulting of leaving the pins floating.
On Fri, Feb 27, 2015 at 5:58 PM, Paul Johnson <[email protected]> wrote: > One more question. When I connect to the IOIO board with this code both > lines of text show the same numbers and do not return to 0 when the wire is > unhooked from the pin. Also numbers continue to display for probably 10 > times the amount of time the pin was connected. > > Please see the video. The pin was just plugged in for a second. (only one > pin). Anyone see what I am missing? > > https://www.youtube.com/watch?v=IyI-T3F1pYw > > Thanks for the help with the code. I think its starting to come together. > > class PulseInputThread extends Thread { > private final PulseInput input_; > private final Timer timer_; > > public PulseInputThread(PulseInput input,Timer timer) { > input_ = input; > timer_ = timer; > } > > > private synchronized void read() throws ConnectionLostException { > TimerTask task = new TimerTask() {public void run() { > interrupt(); > }}; > > timer_.schedule(task, 1000); > try { > last_ = 1/input_.waitPulseGetDuration(); > task.cancel(); > } catch (InterruptedException e) { > last_ = 0; > } > } > > public void run() { > try { > while (true) { > read(); > > try { > Thread.sleep(1000); > } catch (InterruptedException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } > } > } catch (ConnectionLostException e) { > e.printStackTrace(); > } > } > > public synchronized float getLastReading() { > return last_; > } > } > class Looper extends BaseIOIOLooper { > PulseInputThread thread1_; > PulseInputThread thread2_; > @Override > protected void setup() throws ConnectionLostException { > PulseInput input1_ = ioio_.openPulseInput(new DigitalInput.Spec(1), > ClockRate.RATE_62KHz, PulseMode.POSITIVE, false); > PulseInput input2_ = ioio_.openPulseInput(new DigitalInput.Spec(3), > ClockRate.RATE_62KHz, PulseMode.POSITIVE, false); > > Timer t = new Timer(); > thread1_ = new PulseInputThread(input1_, t); > thread2_ = new PulseInputThread(input2_, t); > thread1_.start(); > thread2_.start(); > } > > @Override > public void loop() throws ConnectionLostException { > setText1(thread1_.getLastReading()); > setText2(thread2_.getLastReading()); > try { > Thread.sleep(1000); > } catch (InterruptedException e) { > } > } > public void disconnected() { > try { > > thread1_.join(); > thread2_.join(); > } catch (InterruptedException e) { > } > } > } > > > > @Override > protected IOIOLooper createIOIOLooper() { > return new Looper(); > } > > private void setText1(final float freqHZ1) { > runOnUiThread(new Runnable() { > @Override > public void run() { > row1.setText("Seeds per second: " + freqHZ1); > } > }); > } > private void setText2( final float freqHZ2) { > runOnUiThread(new Runnable() { > @Override > public void run() { > row2.setText("Seeds per second: " + freqHZ2); > } > }); > } > > -- > 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/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 [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/d/optout.
