Skip to content

Commit 3c9c270

Browse files
committed
samples: Added attach_interrupt sample
Add a sample to demonstrate how to use attachInterrupt Signed-off-by: TOKITA Hiroshi <[email protected]>
1 parent 4282434 commit 3c9c270

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
cmake_minimum_required(VERSION 3.20.0)
4+
5+
set(DTC_OVERLAY_FILE $ENV{ZEPHYR_BASE}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay)
6+
7+
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
8+
project(attach_interrupt)
9+
10+
target_sources(app PRIVATE src/main.cpp)
11+
12+
zephyr_compile_options(-Wno-unused-variable -Wno-comment)

samples/attach_interrupt/README.rst

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
.. _attach_interrupt-sample:
2+
3+
AttachInterrupt
4+
######
5+
6+
Overview
7+
********
8+
9+
This sample demonstrates how to use attachInterrupt API.
10+
11+
Building and Running
12+
********************
13+
14+
Build and flash attachInterrupt sample as follows,
15+
16+
```sh
17+
$> west build -p -b arduino_nano_33_ble samples/basic/attach_interrupt/ -DZEPHYR_EXTRA_MODULES=/home/$USER/zephyrproject/modules/lib/Arduino-Core-Zephyr
18+
19+
$> west flash --bossac=/home/$USER/.arduino15/packages/arduino/tools/bossac/1.9.1-arduino2/bossac
20+
```
21+
22+
Turn on the LED by detecting interrupts. And Turn off the next interrupt.

samples/attach_interrupt/prj.conf

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CONFIG_ARDUINO_API=y

samples/attach_interrupt/src/main.cpp

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* Copyright (c) 2022 TOKITA Hiroshi <[email protected]>
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
#include <Arduino.h>
8+
9+
const pin_size_t ledPin = LED_BUILTIN;
10+
const pin_size_t interruptPin = 2;
11+
PinStatus state = LOW;
12+
13+
void blink() {
14+
state = (state == LOW) ? HIGH : LOW;
15+
digitalWrite(ledPin, state);
16+
}
17+
18+
void setup() {
19+
pinMode(ledPin, OUTPUT);
20+
pinMode(interruptPin, INPUT_PULLUP);
21+
attachInterrupt(interruptPin, blink, CHANGE);
22+
}
23+
24+
void loop() {
25+
}

0 commit comments

Comments
 (0)