Update MSTimer2 to support ATmega1284P. Thanks Tom.
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
Javier Valencia <javiervalencia80@gmail.com>
|
Javier Valencia <javiervalencia80@gmail.com>
|
||||||
|
|
||||||
History:
|
History:
|
||||||
|
|
||||||
|
05Apr2015 TRL V0.6a added support for ATmega1284P
|
||||||
29/Dec/11 - V0.6 added support for ATmega32u4, AT90USB646, AT90USB1286 (paul@pjrc.com)
|
29/Dec/11 - V0.6 added support for ATmega32u4, AT90USB646, AT90USB1286 (paul@pjrc.com)
|
||||||
some improvements added by Bill Perry
|
some improvements added by Bill Perry
|
||||||
note: uses timer4 on Atmega32u4
|
note: uses timer4 on Atmega32u4
|
||||||
@@ -49,7 +51,7 @@ void MsTimer2::set(unsigned long ms, void (*f)()) {
|
|||||||
|
|
||||||
func = f;
|
func = f;
|
||||||
|
|
||||||
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
||||||
TIMSK2 &= ~(1<<TOIE2);
|
TIMSK2 &= ~(1<<TOIE2);
|
||||||
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));
|
TCCR2A &= ~((1<<WGM21) | (1<<WGM20));
|
||||||
TCCR2B &= ~(1<<WGM22);
|
TCCR2B &= ~(1<<WGM22);
|
||||||
@@ -147,7 +149,7 @@ void MsTimer2::set(unsigned long ms, void (*f)()) {
|
|||||||
void MsTimer2::start() {
|
void MsTimer2::start() {
|
||||||
count = 0;
|
count = 0;
|
||||||
overflowing = 0;
|
overflowing = 0;
|
||||||
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
||||||
TCNT2 = tcnt2;
|
TCNT2 = tcnt2;
|
||||||
TIMSK2 |= (1<<TOIE2);
|
TIMSK2 |= (1<<TOIE2);
|
||||||
#elif defined (__AVR_ATmega128__)
|
#elif defined (__AVR_ATmega128__)
|
||||||
@@ -164,7 +166,7 @@ void MsTimer2::start() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MsTimer2::stop() {
|
void MsTimer2::stop() {
|
||||||
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
||||||
TIMSK2 &= ~(1<<TOIE2);
|
TIMSK2 &= ~(1<<TOIE2);
|
||||||
#elif defined (__AVR_ATmega128__)
|
#elif defined (__AVR_ATmega128__)
|
||||||
TIMSK &= ~(1<<TOIE2);
|
TIMSK &= ~(1<<TOIE2);
|
||||||
@@ -192,7 +194,7 @@ ISR(TIMER4_OVF_vect) {
|
|||||||
#else
|
#else
|
||||||
ISR(TIMER2_OVF_vect) {
|
ISR(TIMER2_OVF_vect) {
|
||||||
#endif
|
#endif
|
||||||
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
#if defined (__AVR_ATmega168__) || defined (__AVR_ATmega48__) || defined (__AVR_ATmega88__) || defined (__AVR_ATmega328P__) || defined (__AVR_ATmega1280__) || defined(__AVR_ATmega1284P__) || defined(__AVR_ATmega2560__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__)
|
||||||
TCNT2 = MsTimer2::tcnt2;
|
TCNT2 = MsTimer2::tcnt2;
|
||||||
#elif defined (__AVR_ATmega128__)
|
#elif defined (__AVR_ATmega128__)
|
||||||
TCNT2 = MsTimer2::tcnt2;
|
TCNT2 = MsTimer2::tcnt2;
|
||||||
@@ -203,4 +205,3 @@ ISR(TIMER2_OVF_vect) {
|
|||||||
#endif
|
#endif
|
||||||
MsTimer2::_overflow();
|
MsTimer2::_overflow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user