Hello ![]()
I have an issue when trying to compile a sketch.
This sketch is using the Mozzi library and is uploaded on a board using an Atmega328P programmed with an USBASP programmer. It's working fine like this.
I want to switch to Atmega328PB and I have errors.
The errors are related to timer definition in the mozzi library
I'm using MiniCore board definition for the Atmega and Mozzi version 1.1.2
In file included from C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts_impl_AVR.hpp:14:0,
from C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts.cpp:35:
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h: In member function 'void TimerOne::setPwmDuty(char, unsigned int)':
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:157:14: error: 'TIMER1_A_PIN' was not declared in this scope
if (pin == TIMER1_A_PIN)
^~~~~~~~~~~~
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:157:14: note: suggested alternative: 'TIMER1A'
if (pin == TIMER1_A_PIN)
^~~~~~~~~~~~
TIMER1A
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h: In member function 'void TimerOne::pwm(char, unsigned int)':
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:175:14: error: 'TIMER1_A_PIN' was not declared in this scope
if (pin == TIMER1_A_PIN)
^~~~~~~~~~~~
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:175:14: note: suggested alternative: 'TIMER1A'
if (pin == TIMER1_A_PIN)
^~~~~~~~~~~~
TIMER1A
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h: In member function 'void TimerOne::disablePwm(char)':
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:208:14: error: 'TIMER1_A_PIN' was not declared in this scope
if (pin == TIMER1_A_PIN) {
^~~~~~~~~~~~
C:\Users\User\Documents\Arduino\libraries\Mozzi\utility/TimerOne.h:208:14: note: suggested alternative: 'TIMER1A'
if (pin == TIMER1_A_PIN) {
^~~~~~~~~~~~
TIMER1A
In file included from C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts.h:224:0,
from C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts.cpp:15:
C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts_impl_AVR.hpp: In function 'void startAudio()':
C:\Users\User\Documents\Arduino\libraries\Mozzi\AudioConfigStandardPlus.h:23:29: error: 'TIMER1_A_PIN' was not declared in this scope
#define AUDIO_CHANNEL_1_PIN TIMER1_A_PIN // defined in TimerOne/config/known_16bit_timers.h
^
C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts_impl_AVR.hpp:201:11: note: in expansion of macro 'AUDIO_CHANNEL_1_PIN'
pinMode(AUDIO_CHANNEL_1_PIN, OUTPUT); // set pin to output for audio
^~~~~~~~~~~~~~~~~~~
C:\Users\User\Documents\Arduino\libraries\Mozzi\AudioConfigStandardPlus.h:23:29: note: suggested alternative: 'TIMER1A'
#define AUDIO_CHANNEL_1_PIN TIMER1_A_PIN // defined in TimerOne/config/known_16bit_timers.h
^
C:\Users\User\Documents\Arduino\libraries\Mozzi\MozziGuts_impl_AVR.hpp:201:11: note: in expansion of macro 'AUDIO_CHANNEL_1_PIN'
pinMode(AUDIO_CHANNEL_1_PIN, OUTPUT); // set pin to output for audio
^~~~~~~~~~~~~~~~~~~
It seems there is some changes in the timers definition for the 328PB compared to 328P.
Do you know any workaround ?
Also notice I'm using Arduino IDE 1.8.1, when trying to compile this project with Arduino IDE 2.3.2 there is lots of new errors even for the working version.
Thanks for your help, let me know if you need more information.