Skip to content

Commit 5e6fb18

Browse files
RF12.cpp - make external interrupt configurable
1 parent d035db8 commit 5e6fb18

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

RF12.cpp

+16-7
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)
5454

5555
#define RFM_IRQ 2
56+
#define RFM_INT INT0
5657
#define SS_DDR DDRB
5758
#define SS_PORT PORTB
5859
#define SS_BIT 0
@@ -65,6 +66,7 @@
6566
#elif defined(__AVR_ATmega644P__)
6667

6768
#define RFM_IRQ 10
69+
#define RFM_INT INT0
6870
#define SS_DDR DDRB
6971
#define SS_PORT PORTB
7072
#define SS_BIT 4
@@ -77,6 +79,7 @@
7779
#elif defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny44__)
7880

7981
#define RFM_IRQ 2
82+
#define RFM_INT INT0
8083
#define SS_DDR DDRB
8184
#define SS_PORT PORTB
8285
#define SS_BIT 1
@@ -86,12 +89,17 @@
8689
#define SPI_MOSI 5 // PA5, pin 8
8790
#define SPI_SCK 6 // PA4, pin 9
8891

89-
#elif defined(__AVR_ATmega32U4__) //Arduino Leonardo, YUN
92+
#elif defined(__AVR_ATmega32U4__) //Arduino Leonardo
9093

91-
#define RFM_IRQ 2 // PD1, pin 19, INT1, Digital2
94+
#define RFM_IRQ 0 // PD0, pin 18, INT0, Digital3
95+
#define RFM_INT INT0
96+
//#define RFM_IRQ 2 // PD1, pin 19, INT1, Digital2
97+
//#define RFM_INT INT1
98+
//#define RFM_IRQ 7 // PE6, INT4, Digital7 - Adafruit Feather M0 RFM96
99+
//#define RFM_INT INT4
92100
#define SS_DDR DDRB
93101
#define SS_PORT PORTB
94-
#define SS_BIT 6 // Dig10, PB6
102+
#define SS_BIT 6 // PB6, pin 30, Digital10
95103

96104
#define SPI_SS 10 // PB6, pin 30, Digital10
97105
#define SPI_MISO 14 // PB3, pin 11, Digital14
@@ -102,6 +110,7 @@
102110

103111
// ATmega168, ATmega328, etc.
104112
#define RFM_IRQ 2 // 2=JeeNode, 18=JeeNode pin change
113+
#define RFM_INT INT0
105114
//#define RFM_IRQ 1 // PCINT1=JeeNode Block pin change
106115
#define SS_DDR DDRB
107116
#define SS_PORT PORTB
@@ -294,7 +303,7 @@ uint16_t rf12_control(uint16_t cmd) {
294303
bitClear(PCICR, PCIE2);
295304
#endif
296305
#else
297-
bitClear(EIMSK, INT1);
306+
bitClear(EIMSK, RFM_INT);
298307
#endif
299308
uint16_t r = rf12_xferSlow(cmd);
300309
#if PINCHG_IRQ
@@ -306,13 +315,13 @@ uint16_t rf12_control(uint16_t cmd) {
306315
bitSet(PCICR, PCIE2);
307316
#endif
308317
#else
309-
bitSet(EIMSK, INT1);
318+
bitSet(EIMSK, RFM_INT);
310319
#endif
311320
#else
312321
// ATtiny
313-
bitClear(GIMSK, INT0);
322+
bitClear(GIMSK, RFM_INT);
314323
uint16_t r = rf12_xferSlow(cmd);
315-
bitSet(GIMSK, INT0);
324+
bitSet(GIMSK, RFM_INT);
316325
#endif
317326
return r;
318327
}

0 commit comments

Comments
 (0)