This commit is contained in:
Rafi Khan
2016-06-28 00:59:31 -06:00
4 changed files with 92 additions and 28 deletions

View File

@@ -184,13 +184,30 @@ EXTERN volatile irparams_t irparams;
#define IR_USE_TIMER2 // tx = pin 1 #define IR_USE_TIMER2 // tx = pin 1
//#define IR_USE_TIMER3 // tx = pin 16 //#define IR_USE_TIMER3 // tx = pin 16
// Sanguino // MightyCore - ATmega1284
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)
//#define IR_USE_TIMER1 // tx = pin 13
#define IR_USE_TIMER2 // tx = pin 14
//#define IR_USE_TIMER3 // tx = pin 6
// MightyCore - ATmega164, ATmega324, ATmega644
#elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \
|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \
|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \
|| defined(__AVR_ATmega164P__)
//#define IR_USE_TIMER1 // tx = pin 13 //#define IR_USE_TIMER1 // tx = pin 13
#define IR_USE_TIMER2 // tx = pin 14 #define IR_USE_TIMER2 // tx = pin 14
//MegaCore - ATmega64, ATmega128
#elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
#define IR_USE_TIMER1 // tx = pin 13
// MightyCore - ATmega8535, ATmega16, ATmega32
#elif defined(__AVR_ATmega8535__) || defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__)
#define IR_USE_TIMER1 // tx = pin 13
// Atmega8 // Atmega8
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) #elif defined(__AVR_ATmega8__)
#define IR_USE_TIMER1 // tx = pin 9 #define IR_USE_TIMER1 // tx = pin 9
// ATtiny84 // ATtiny84
@@ -255,8 +272,12 @@ EXTERN volatile irparams_t irparams;
# define TIMER_PWM_PIN CORE_OC2B_PIN // Teensy # define TIMER_PWM_PIN CORE_OC2B_PIN // Teensy
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
# define TIMER_PWM_PIN 9 // Arduino Mega # define TIMER_PWM_PIN 9 // Arduino Mega
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) \
# define TIMER_PWM_PIN 14 // Sanguino || defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \
|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \
|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \
|| defined(__AVR_ATmega164P__)
# define TIMER_PWM_PIN 14 // MightyCore
#else #else
# define TIMER_PWM_PIN 3 // Arduino Duemilanove, Diecimila, LilyPad, etc # define TIMER_PWM_PIN 3 // Arduino Duemilanove, Diecimila, LilyPad, etc
#endif #endif
@@ -271,7 +292,9 @@ EXTERN volatile irparams_t irparams;
#define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1))) #define TIMER_DISABLE_PWM (TCCR1A &= ~(_BV(COM1A1)))
//----------------- //-----------------
#if defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) #if defined(__AVR_ATmega8__) || defined(__AVR_ATmega8535__) \
|| defined(__AVR_ATmega16__) || defined(__AVR_ATmega32__) \
|| defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
# define TIMER_ENABLE_INTR (TIMSK |= _BV(OCIE1A)) # define TIMER_ENABLE_INTR (TIMSK |= _BV(OCIE1A))
# define TIMER_DISABLE_INTR (TIMSK &= ~_BV(OCIE1A)) # define TIMER_DISABLE_INTR (TIMSK &= ~_BV(OCIE1A))
#else #else
@@ -302,8 +325,15 @@ EXTERN volatile irparams_t irparams;
# define TIMER_PWM_PIN CORE_OC1A_PIN // Teensy # define TIMER_PWM_PIN CORE_OC1A_PIN // Teensy
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
# define TIMER_PWM_PIN 11 // Arduino Mega # define TIMER_PWM_PIN 11 // Arduino Mega
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) #elif defined(__AVR_ATmega64__) || defined(__AVR_ATmega128__)
# define TIMER_PWM_PIN 13 // Sanguino # define TIMER_PWM_PIN 13 // MegaCore
#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__) \
|| defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__) \
|| defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) \
|| defined(__AVR_ATmega324PA__) || defined(__AVR_ATmega164A__) \
|| defined(__AVR_ATmega164P__) || defined(__AVR_ATmega32__) \
|| defined(__AVR_ATmega16__) || defined(__AVR_ATmega8535__)
# define TIMER_PWM_PIN 13 // MightyCore
#elif defined(__AVR_ATtiny84__) #elif defined(__AVR_ATtiny84__)
# define TIMER_PWM_PIN 6 # define TIMER_PWM_PIN 6
#else #else
@@ -342,6 +372,8 @@ EXTERN volatile irparams_t irparams;
# define TIMER_PWM_PIN CORE_OC3A_PIN // Teensy # define TIMER_PWM_PIN CORE_OC3A_PIN // Teensy
#elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) #elif defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
# define TIMER_PWM_PIN 5 // Arduino Mega # define TIMER_PWM_PIN 5 // Arduino Mega
#elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)
# define TIMER_PWM_PIN 6 // MightyCore
#else #else
# error "Please add OC3A pin number here\n" # error "Please add OC3A pin number here\n"
#endif #endif

View File

@@ -8,7 +8,7 @@ This library enables you to send and receive using infra-red signals on an Ardui
Check [here](http://z3t0.github.io/Arduino-IRremote/) for tutorials and more information. Check [here](http://z3t0.github.io/Arduino-IRremote/) for tutorials and more information.
## Version - 2.1.0 ## Version - 2.2.0
## Installation ## Installation
1. Navigate to the [Releases](https://github.com/z3t0/Arduino-IRremote/releases) page. 1. Navigate to the [Releases](https://github.com/z3t0/Arduino-IRremote/releases) page.
@@ -21,7 +21,7 @@ Check [here](http://z3t0.github.io/Arduino-IRremote/) for tutorials and more inf
- Arduino Uno / Mega / Leonardo / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano etc. - Arduino Uno / Mega / Leonardo / Duemilanove / Diecimila / LilyPad / Mini / Fio / Nano etc.
- Teensy 1.0 / 1.0++ / 2.0 / 2++ / 3.0 / 3.1 / Teensy-LC; Credits: @PaulStoffregen (Teensy Team) - Teensy 1.0 / 1.0++ / 2.0 / 2++ / 3.0 / 3.1 / Teensy-LC; Credits: @PaulStoffregen (Teensy Team)
- Sanguino - Sanguino
- Atmega8 - Atmega8535, 8, 16, 32, 164, 324, 644, 1284, 64, 128
- ATtiny 84 / 85 - ATtiny 84 / 85
We are open to suggestions for adding support to new boards, however we highly recommend you contact your supplier first and ask them to provide support from their side. We are open to suggestions for adding support to new boards, however we highly recommend you contact your supplier first and ask them to provide support from their side.
@@ -29,18 +29,21 @@ We are open to suggestions for adding support to new boards, however we highly r
### Hardware specifications ### Hardware specifications
| Board/CPU | Send Pin | Timers | | Board/CPU | Send Pin | Timers |
|------------------------------------------|---------------------|-------------------| |--------------------------------------------------------------------------|---------------------|-------------------|
| Arduino Mega / ATmega 1280 / ATmega 2560 | 5, 6, **9**, 11, 46 | 1, **2**, 3, 4, 5 | | [ATtiny84](https://github.com/SpenceKonde/ATTinyCore) | **6** | **1** |
| Teensy 1.0 | **17** | **1** | | [ATtiny85](https://github.com/SpenceKonde/ATTinyCore) | **1** | **TINY0** |
| Teensy 2.0 | 9, **10**, 14 | 1, 3, **4_HS** | | ATmega8 | **9** | **1** |
| Teensy++ 1.0 / 2.0 | **1**, 16, 25 | 1, **2**, 3 | | ATmega168, ATmega328 | **3**, 9 | 1, **2** |
| Teensy 3.0 / 3.1 | **5** | **CMT** | | [ATmega1284](https://github.com/MCUdude/MightyCore) | 13, 14, 6 | 1, **2**, 3 |
| Teensy-LC | **16** | **TPM1** | | [ATmega164, ATmega324, ATmega644](https://github.com/MCUdude/MightyCore) | 13, **14** | 1, **2** |
| Sanguino | 13, **14** | 1, **2** | | [ATmega8535 ATmega16, ATmega32](https://github.com/MCUdude/MightyCore) | **13** | **1** |
| Atmega8 | **9** | **1** | | [ATmega64, ATmega128](https://github.com/MCUdude/MegaCore) | **13** | **1** |
| ATtiny84 | **6** | **1** | | ATmega1280, ATmega2560 | 5, 6, **9**, 11, 46 | 1, **2**, 3, 4, 5 |
| ATtiny85 | **1** | **TINY0** | | [Teensy 1.0](https://www.pjrc.com/teensy/) | **17** | **1** |
| Arduino Duemilanove, UNO etc. | **3**, 9 | 1, **2** | | [Teensy 2.0](https://www.pjrc.com/teensy/) | 9, **10**, 14 | 1, 3, **4_HS** |
| [Teensy++ 1.0 / 2.0](https://www.pjrc.com/teensy/) | **1**, 16, 25 | 1, **2**, 3 |
| [Teensy 3.0 / 3.1](https://www.pjrc.com/teensy/) | **5** | **CMT** |
| [Teensy-LC](https://www.pjrc.com/teensy/) | **16** | **TPM1** |
The table above lists the currently supported timers and corresponding send pins, many of these can have additional pins opened up and we are open to requests if a need arises for other pins. The table above lists the currently supported timers and corresponding send pins, many of these can have additional pins opened up and we are open to requests if a need arises for other pins.

View File

@@ -1,3 +1,16 @@
## 2.2.0 - 2016/06/28
- Added support for ATmega8535
- Added support for ATmega16
- Added support for ATmega32
- Added support for ATmega164
- Added support for ATmega324
- Added support for ATmega644
- Added support for ATmega1284
- Added support for ATmega64
- Added support for ATmega128
[PR](https://github.com/z3t0/Arduino-IRremote/pull/324)
## 2.1.1 - 2016/05/04 ## 2.1.1 - 2016/05/04
- Added Lego Power Functions Protocol [PR #309](https://github.com/z3t0/Arduino-IRremote/pull/309) - Added Lego Power Functions Protocol [PR #309](https://github.com/z3t0/Arduino-IRremote/pull/309)

View File

@@ -107,10 +107,26 @@ void dumpPlatform() {
Serial.println(F("Teensy++ 1.0 / AT90USB646")); Serial.println(F("Teensy++ 1.0 / AT90USB646"));
#elif defined(__AVR_AT90USB1286__) #elif defined(__AVR_AT90USB1286__)
Serial.println(F("Teensy++ 2.0 / AT90USB1286")); Serial.println(F("Teensy++ 2.0 / AT90USB1286"));
#elif defined(__AVR_ATmega644P__) || defined(__AVR_ATmega644__) #elif defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)
Serial.println(F("Sanguino / ATmega644(P)")); Serial.println(F("ATmega1284"));
#elif defined(__AVR_ATmega8P__) || defined(__AVR_ATmega8__) #elif defined(__AVR_ATmega644__) || defined(__AVR_ATmega644P__)
Serial.println(F("Atmega8 / ATmega8(P)")); Serial.println(F("ATmega644"));
#elif defined(__AVR_ATmega324P__) || defined(__AVR_ATmega324A__) || defined(__AVR_ATmega324PA__)
Serial.println(F("ATmega324"));
#elif defined(__AVR_ATmega164A__) || defined(__AVR_ATmega164P__)
Serial.println(F("ATmega164"));
#elif defined(__AVR_ATmega128__)
Serial.println(F("ATmega128"));
#elif defined(__AVR_ATmega64__)
Serial.println(F("ATmega64"));
#elif defined(__AVR_ATmega32__)
Serial.println(F("ATmega32"));
#elif defined(__AVR_ATmega16__)
Serial.println(F("ATmega16"));
#elif defined(__AVR_ATmega8535__)
Serial.println(F("ATmega8535"));
#elif defined(__AVR_ATmega8__)
Serial.println(F("Atmega8"));
#elif defined(__AVR_ATtiny84__) #elif defined(__AVR_ATtiny84__)
Serial.println(F("ATtiny84")); Serial.println(F("ATtiny84"));
#elif defined(__AVR_ATtiny85__) #elif defined(__AVR_ATtiny85__)