Skip to content

Commit

Permalink
RF12.cpp - make external interrupt configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
federicobriata committed Nov 15, 2024
1 parent d035db8 commit 5e6fb18
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions RF12.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#if defined(__AVR_ATmega2560__) || defined(__AVR_ATmega1280__)

#define RFM_IRQ 2
#define RFM_INT INT0
#define SS_DDR DDRB
#define SS_PORT PORTB
#define SS_BIT 0
Expand All @@ -65,6 +66,7 @@
#elif defined(__AVR_ATmega644P__)

#define RFM_IRQ 10
#define RFM_INT INT0
#define SS_DDR DDRB
#define SS_PORT PORTB
#define SS_BIT 4
Expand All @@ -77,6 +79,7 @@
#elif defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny44__)

#define RFM_IRQ 2
#define RFM_INT INT0
#define SS_DDR DDRB
#define SS_PORT PORTB
#define SS_BIT 1
Expand All @@ -86,12 +89,17 @@
#define SPI_MOSI 5 // PA5, pin 8
#define SPI_SCK 6 // PA4, pin 9

#elif defined(__AVR_ATmega32U4__) //Arduino Leonardo, YUN
#elif defined(__AVR_ATmega32U4__) //Arduino Leonardo

#define RFM_IRQ 2 // PD1, pin 19, INT1, Digital2
#define RFM_IRQ 0 // PD0, pin 18, INT0, Digital3
#define RFM_INT INT0
//#define RFM_IRQ 2 // PD1, pin 19, INT1, Digital2
//#define RFM_INT INT1
//#define RFM_IRQ 7 // PE6, INT4, Digital7 - Adafruit Feather M0 RFM96
//#define RFM_INT INT4
#define SS_DDR DDRB
#define SS_PORT PORTB
#define SS_BIT 6 // Dig10, PB6
#define SS_BIT 6 // PB6, pin 30, Digital10

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

// ATmega168, ATmega328, etc.
#define RFM_IRQ 2 // 2=JeeNode, 18=JeeNode pin change
#define RFM_INT INT0
//#define RFM_IRQ 1 // PCINT1=JeeNode Block pin change
#define SS_DDR DDRB
#define SS_PORT PORTB
Expand Down Expand Up @@ -294,7 +303,7 @@ uint16_t rf12_control(uint16_t cmd) {
bitClear(PCICR, PCIE2);
#endif
#else
bitClear(EIMSK, INT1);
bitClear(EIMSK, RFM_INT);
#endif
uint16_t r = rf12_xferSlow(cmd);
#if PINCHG_IRQ
Expand All @@ -306,13 +315,13 @@ uint16_t rf12_control(uint16_t cmd) {
bitSet(PCICR, PCIE2);
#endif
#else
bitSet(EIMSK, INT1);
bitSet(EIMSK, RFM_INT);
#endif
#else
// ATtiny
bitClear(GIMSK, INT0);
bitClear(GIMSK, RFM_INT);
uint16_t r = rf12_xferSlow(cmd);
bitSet(GIMSK, INT0);
bitSet(GIMSK, RFM_INT);
#endif
return r;
}
Expand Down

0 comments on commit 5e6fb18

Please sign in to comment.