• Yes, the issue is actually with the TI's CC3000 drivers, which basically just block until they receive a response from the CC3000.

    Personally I'd be against calling the idle loop from within the CC3000 drivers (that just sounds like a recipe for pain), but ideally we could re-write the drivers so that they didn't block, or could actually just use a network interface chip that's been properly designed - I've recently added WIZnet support (for wired ethernet) and this behaves a lot more sensibly. The only thing that does still cause delays is the name resolution - but that could be worked around relatively easily.

    Otherwise you do have options for working around this delay:

    • The Waveform object will read or write analog values at set intervals via Interrupts. This may do what you want right now, but could easily be extended to handle digital signals as well.
    • Watches are handled on interrupts and are then queued for later execution. Instead of reading the value of a pin, you could listen for the times that it changes state and record those instead.
About

Avatar for Gordon @Gordon started