Skip to content

Commit 7992551

Browse files
committed
Fix interrupt number conversion
Add Arduino Due experimental support feature
1 parent f235b66 commit 7992551

File tree

3 files changed

+4
-47
lines changed

3 files changed

+4
-47
lines changed

SUPPORTED.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,4 @@ If you have successfully used this library with an unconfirmed board, please let
3333
| Arduino Industrial 101 ||
3434
| Linino One ||
3535
| Arduino Uno WiFi ||
36-
| Arduino Due | |
36+
| Arduino Due | |

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ sentence=A library that makes control Parallax FeedBack360 servo easy.
66
paragraph=You can control servo to degree of rotation what you want with this library. Of course, you can read servo's degree of rotation.
77
category=Device Control
88
url=https://github.com/HyodaKazuaki/FeedBack360-Servo-Control-Library-4-Arduino
9-
architectures=avr
9+
architectures=avr,sam

src/FeedBackServo.cpp

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ FeedBackServo::FeedBackServo(byte _feedbackPinNumber = 2)
2323
pinCheck(_feedbackPinNumber);
2424
feedbackPinNumber = _feedbackPinNumber;
2525

26-
// convert feedback pin number for use on attachInterrupt function
27-
byte internalPinNumber = convertFeedbackPin();
26+
// convert feedback pin number to interrupt number for use on attachInterrupt function
27+
uint8_t internalPinNumber = digitalPinToInterrupt(feedbackPinNumber);
2828

2929
attachInterrupt(internalPinNumber, feedback, CHANGE);
3030
}
@@ -79,49 +79,6 @@ void FeedBackServo::pinCheck(byte _feedbackPinNumber)
7979
#endif
8080
}
8181

82-
byte FeedBackServo::convertFeedbackPin()
83-
{
84-
byte internalPinNumber;
85-
#ifdef ARDUINO_AVR_UNO
86-
switch (feedbackPinNumber)
87-
{
88-
case 2:
89-
internalPinNumber = 0;
90-
break;
91-
case 3:
92-
internalPinNumber = 1;
93-
break;
94-
default:
95-
internalPinNumber = 0;
96-
break;
97-
}
98-
#endif
99-
#ifdef ARDUINO_AVR_LEONARDO
100-
switch (feedbackPinNumber)
101-
{
102-
case 0:
103-
internalPinNumber = 2;
104-
break;
105-
case 1:
106-
internalPinNumber = 3;
107-
break;
108-
case 2:
109-
internalPinNumber = 1;
110-
break;
111-
case 3:
112-
internalPinNumber = 0;
113-
break;
114-
case 7:
115-
internalPinNumber = 4;
116-
break;
117-
default:
118-
internalPinNumber = 0;
119-
break;
120-
}
121-
#endif
122-
return internalPinNumber;
123-
}
124-
12582
static void FeedBackServo::feedback() {
12683
if(digitalRead(feedbackPinNumber)) {
12784
rise = micros();

0 commit comments

Comments
 (0)