PaulStoffregen / TimerOne

TimerOne Library with optimization and expanded hardware support
http://www.pjrc.com/teensy/td_libs_TimerOne.html
467 stars 209 forks source link

Errors when using TimerOne with new Arduino Nano Every #39

Open rcmolina opened 5 years ago

rcmolina commented 5 years ago

Description

I get some errors, so some definitions may need to be added ¿? to support new ATMEGA4809.

Steps To Reproduce Problem

Code compiling

Hardware & Software

Board Arduino Nano Every Shields / modules used Arduino IDE version 1.8.4 Teensyduino version (if using Teensy) Version info & package name (from Tools > Boards > Board Manager) Operating system & version win 8.1 Any other software or hardware?

Arduino Sketch


// Change the code below by your sketch (please try to give the smallest code which demonstrates the problem)
#include <Arduino.h>
#include <TimerOne.h>
// libraries: give links/details so anyone can compile your code for the same result

void setup() {
}

void loop() {
}
    Timer1.initialize(1000);                
    Timer1.attachInterrupt(wave);

### Errors or Incorrect Output
C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::initialize(long unsigned int)':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:47:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = _BV(WGM13);        // set mode as phase and frequency correct pwm, stop the timer

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:47:2: note: suggested alternative: 'TCB1'

  TCCR1B = _BV(WGM13);        // set mode as phase and frequency correct pwm, stop the timer

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:47:15: error: 'WGM13' was not declared in this scope

  TCCR1B = _BV(WGM13);        // set mode as phase and frequency correct pwm, stop the timer

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:48:2: error: 'TCCR1A' was not declared in this scope

  TCCR1A = 0;                 // clear control register A

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:48:2: note: suggested alternative: 'TCB1'

  TCCR1A = 0;                 // clear control register A

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::setPeriod(long unsigned int)':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:54:25: error: 'CS10' was not declared in this scope

   clockSelectBits = _BV(CS10);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:54:25: note: suggested alternative: 'CMD10'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:58:25: error: 'CS11' was not declared in this scope

   clockSelectBits = _BV(CS11);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:58:25: note: suggested alternative: 'CSDV1'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:62:25: error: 'CS11' was not declared in this scope

   clockSelectBits = _BV(CS11) | _BV(CS10);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:62:25: note: suggested alternative: 'CSDV1'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:62:37: error: 'CS10' was not declared in this scope

   clockSelectBits = _BV(CS11) | _BV(CS10);

                                     ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:62:37: note: suggested alternative: 'CMD10'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:66:25: error: 'CS12' was not declared in this scope

   clockSelectBits = _BV(CS12);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:66:25: note: suggested alternative: 'CSDV2'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:70:25: error: 'CS12' was not declared in this scope

   clockSelectBits = _BV(CS12) | _BV(CS10);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:70:25: note: suggested alternative: 'CSDV2'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:70:37: error: 'CS10' was not declared in this scope

   clockSelectBits = _BV(CS12) | _BV(CS10);

                                     ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:70:37: note: suggested alternative: 'CMD10'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:73:25: error: 'CS12' was not declared in this scope

   clockSelectBits = _BV(CS12) | _BV(CS10);

                         ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:73:25: note: suggested alternative: 'CSDV2'

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:73:37: error: 'CS10' was not declared in this scope

   clockSelectBits = _BV(CS12) | _BV(CS10);

                                     ^

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:73:37: note: suggested alternative: 'CMD10'

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:76:2: error: 'ICR1' was not declared in this scope

  ICR1 = pwmPeriod;

  ^~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:76:2: note: suggested alternative: 'ID31'

  ICR1 = pwmPeriod;

  ^~~~

  ID31

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:77:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:77:2: note: suggested alternative: 'TCB1'

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:77:15: error: 'WGM13' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::start()':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:84:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = 0;

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:84:2: note: suggested alternative: 'TCB1'

  TCCR1B = 0;

  ^~~~~~

  TCB1

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:85:2: error: 'TCNT1' was not declared in this scope

  TCNT1 = 0;  // TODO: does this cause an undesired interrupt?

  ^~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:85:2: note: suggested alternative: 'TCB1'

  TCNT1 = 0;  // TODO: does this cause an undesired interrupt?

  ^~~~~

  TCB1

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::stop()':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:89:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = _BV(WGM13);

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:89:2: note: suggested alternative: 'TCB1'

  TCCR1B = _BV(WGM13);

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:89:15: error: 'WGM13' was not declared in this scope

  TCCR1B = _BV(WGM13);

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::resume()':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:95:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:95:2: note: suggested alternative: 'TCB1'

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:95:15: error: 'WGM13' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::setPwmDuty(char, unsigned int)':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:105:13: error: 'TIMER1_A_PIN' was not declared in this scope

  if (pin == TIMER1_A_PIN) OCR1A = dutyCycle;

             ^~~~~~~~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:105:13: note: suggested alternative: 'TIMERA0'

  if (pin == TIMER1_A_PIN) OCR1A = dutyCycle;

             ^~~~~~~~~~~~

             TIMERA0

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:105:27: error: 'OCR1A' was not declared in this scope

  if (pin == TIMER1_A_PIN) OCR1A = dutyCycle;

                           ^~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:105:27: note: suggested alternative: 'O_CREAT'

  if (pin == TIMER1_A_PIN) OCR1A = dutyCycle;

                           ^~~~~

                           O_CREAT

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::pwm(char, unsigned int)':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:114:13: error: 'TIMER1_A_PIN' was not declared in this scope

  if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); }

             ^~~~~~~~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:114:13: note: suggested alternative: 'TIMERA0'

  if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); }

             ^~~~~~~~~~~~

             TIMERA0

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:114:60: error: 'TCCR1A' was not declared in this scope

  if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); }

                                                            ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:114:60: note: suggested alternative: 'TCB1'

  if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); }

                                                            ^~~~~~

                                                            TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:114:74: error: 'COM1A1' was not declared in this scope

  if (pin == TIMER1_A_PIN) { pinMode(TIMER1_A_PIN, OUTPUT); TCCR1A |= _BV(COM1A1); }

                                                                          ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:122:2: error: 'TCCR1B' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:122:2: note: suggested alternative: 'TCB1'

  TCCR1B = _BV(WGM13) | clockSelectBits;

  ^~~~~~

  TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:122:15: error: 'WGM13' was not declared in this scope

  TCCR1B = _BV(WGM13) | clockSelectBits;

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::disablePwm(char)':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:129:13: error: 'TIMER1_A_PIN' was not declared in this scope

  if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1);

             ^~~~~~~~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:129:13: note: suggested alternative: 'TIMERA0'

  if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1);

             ^~~~~~~~~~~~

             TIMERA0

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:129:27: error: 'TCCR1A' was not declared in this scope

  if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1);

                           ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:129:27: note: suggested alternative: 'TCB1'

  if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1);

                           ^~~~~~

                           TCB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:129:42: error: 'COM1A1' was not declared in this scope

  if (pin == TIMER1_A_PIN) TCCR1A &= ~_BV(COM1A1);

                                          ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::attachInterrupt(void (*)())':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:143:2: error: 'TIMSK1' was not declared in this scope

  TIMSK1 = _BV(TOIE1);

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:143:2: note: suggested alternative: 'TIMERB1'

  TIMSK1 = _BV(TOIE1);

  ^~~~~~

  TIMERB1

In file included from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\io.h:99:0,

                 from c:\users\rafael\appdata\local\arduino15\packages\arduino\tools\avr-gcc\7.3.0-atmel3.6.1-arduino5\avr\include\avr\pgmspace.h:90,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/String.h:30,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Print.h:24,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Stream.h:25,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/Client.h:22,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/api/ArduinoAPI.h:29,

                 from C:\Users\Rafael\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.3\cores\arduino/Arduino.h:23,

                 from sketch\MaxDuino_v1.51.ino.cpp:1:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:143:15: error: 'TOIE1' was not declared in this scope

  TIMSK1 = _BV(TOIE1);

               ^

In file included from C:\Users\Rafael\Documents\Arduino\MaxDuino_v1.51\MaxDuino_v1.51.ino:103:0:

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h: In member function 'void TimerOne::detachInterrupt()':

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:150:2: error: 'TIMSK1' was not declared in this scope

  TIMSK1 = 0;

  ^~~~~~

C:\Users\Rafael\Documents\Arduino\libraries\TimerOne/TimerOne.h:150:2: note: suggested alternative: 'TIMERB1'

  TIMSK1 = 0;

  ^~~~~~

  TIMERB1
jwalk487 commented 5 years ago

Same problem and struggling to find a workaround.

kryptonn commented 5 years ago

Same here, even with REGISTER EMULATION ATMEGA328 enabled It seems that nano every registers are completely different Datasheet link : http://ww1.microchip.com/downloads/en/DeviceDoc/Atmega809-1609-3209-4809-48-Pin-40002016C.pdf

Kees-van-der-Oord commented 4 years ago

Dear all,

I faced the same challenge as you and wrote a library for the MegaAVR TCB timer: https://github.com/Kees-van-der-Oord/Arduino-Nano-Every-Timer-Controller-B.

It has the same interface as the TimerOne library, so it should be easy to write code that works both on the AVR and MegaAVR chips.

Please let me know if this work for you !

WR, Kees