aboutsummaryrefslogtreecommitdiffstats
path: root/arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2019-02-28 17:04:22 -0500
committerClyne Sullivan <tullivan99@gmail.com>2019-02-28 17:04:22 -0500
commitd6869d1ec4bd24cd2c3eafa534f0849b25ec5607 (patch)
tree79e54ed27b39c31864895535d11399708d5a45c0 /arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred
parent614ee97bf3a2270c413527a7f35c54cbecd9e601 (diff)
added basic code
Diffstat (limited to 'arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred')
-rwxr-xr-xarduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred/digital_interrupt_deferred.ino46
1 files changed, 46 insertions, 0 deletions
diff --git a/arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred/digital_interrupt_deferred.ino b/arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred/digital_interrupt_deferred.ino
new file mode 100755
index 0000000..464e31b
--- /dev/null
+++ b/arduino/libraries/Bluefruit52Lib/examples/Hardware/digital_interrupt_deferred/digital_interrupt_deferred.ino
@@ -0,0 +1,46 @@
+/*********************************************************************
+ This is an example for our Feather Bluefruit modules
+
+ Pick one up today in the adafruit shop!
+
+ Adafruit invests time and resources providing this open source code,
+ please support Adafruit and open-source hardware by purchasing
+ products from Adafruit!
+
+ MIT license, check LICENSE for more information
+ All text above, and the splash screen below must be included in
+ any redistribution
+*********************************************************************/
+
+/*
+ * This sketch demonstrate how to pass ISR_DEFFERED as additional parameter
+ * to defer callback from ISR context with attachInterrupt
+ */
+#include <Arduino.h>
+
+int interruptPin = A0;
+
+void setup()
+{
+ Serial.begin(115200);
+
+ pinMode(interruptPin, INPUT_PULLUP);
+
+ // ISR_DEFERRED flag cause the callback to be deferred from ISR context
+ // and invoked within a callback thread.
+ // It is required to use ISR_DEFERRED if callback function take long time
+ // to run e.g Serial.print() or using any of Bluefruit API() which will
+ // potentially call rtos API
+ attachInterrupt(interruptPin, digital_callback, ISR_DEFERRED | CHANGE);
+}
+
+void loop()
+{
+ // nothing to do
+}
+
+void digital_callback(void)
+{
+ Serial.print("Pin value: ");
+ Serial.println(digitalRead(interruptPin));
+}