Czy jest biblioteka, która obsługuje kilka pinów PWM jednego timera i pozwala ustawić na nich zadaną częstotliwość?
Na przykład chcę użyć pinów 2, 3 and 5 na Arduino Mega. Muszą mieć one taką samą częstotliwość, po pracują na jednym timerze. Potrzebuję tylko innych współczynników wypełnienia.
Próbowałem bibliotekę AVR_PWM. Wszystko działa idealnie, dopóki używam pinów na różnych timerach. Nie chcę tracić kilku timerów, bo wystarczy mi jedna częstotliwość. Czy robię coś nie tak z tą biblioteką? Czy po prostu nie obsługuje ona kilku pinów jednego timera jednocześnie.
Czy jedynym wyjściem jest bezpośrednie ustawienie częstotliwości w rejestrach timera korzystanie z wbudowanej analogWrite?
Czy też użyć jakiejś biblioteki tylko do ustawienia timera i dalej wbudowanej funkcji analogWrite?
```
#include "AVR_PWM.h"
//#define pinToUse 12 // Timer1B on Mega
//#define pinToUse 11 // Timer1A on Mega
//#define pinToUse 9 // Timer2B on Mega
//#define pinToUse 2 // Timer3B on Mega
//#define pinToUse 3 // Timer3C on Mega
//#define pinToUse 5 // Timer3A on Mega
//#define pinToUse 6 // Timer4A on Mega
//#define pinToUse 7 // Timer4B on Mega
//#define pinToUse 8 // Timer4C on Mega
//#define pinToUse 46 // Timer5A on Mega
//#define pinToUse 45 // Timer5B on Mega
//#define pinToUse 44 // Timer5C on Mega
void setup() {
AVR_PWM* PWM_Instance = new AVR_PWM(2, 5000, 0);
AVR_PWM* PWM_Instance2 = new AVR_PWM(3, 5000, 0); // Tried with only one instance per timer, setting different pins on the same instance.
PWM_Instance->setPWM(2, 5000, 50);
//delay(4000); //to be able see on oscilloscope.
PWM_Instance2->setPWM(3, 5000, 50); //That disables PWM on pin2 and enables PWM on pin3. I just want to have both
}
```
Na przykład chcę użyć pinów 2, 3 and 5 na Arduino Mega. Muszą mieć one taką samą częstotliwość, po pracują na jednym timerze. Potrzebuję tylko innych współczynników wypełnienia.
Próbowałem bibliotekę AVR_PWM. Wszystko działa idealnie, dopóki używam pinów na różnych timerach. Nie chcę tracić kilku timerów, bo wystarczy mi jedna częstotliwość. Czy robię coś nie tak z tą biblioteką? Czy po prostu nie obsługuje ona kilku pinów jednego timera jednocześnie.
Czy jedynym wyjściem jest bezpośrednie ustawienie częstotliwości w rejestrach timera korzystanie z wbudowanej analogWrite?
Czy też użyć jakiejś biblioteki tylko do ustawienia timera i dalej wbudowanej funkcji analogWrite?
```
#include "AVR_PWM.h"
//#define pinToUse 12 // Timer1B on Mega
//#define pinToUse 11 // Timer1A on Mega
//#define pinToUse 9 // Timer2B on Mega
//#define pinToUse 2 // Timer3B on Mega
//#define pinToUse 3 // Timer3C on Mega
//#define pinToUse 5 // Timer3A on Mega
//#define pinToUse 6 // Timer4A on Mega
//#define pinToUse 7 // Timer4B on Mega
//#define pinToUse 8 // Timer4C on Mega
//#define pinToUse 46 // Timer5A on Mega
//#define pinToUse 45 // Timer5B on Mega
//#define pinToUse 44 // Timer5C on Mega
void setup() {
AVR_PWM* PWM_Instance = new AVR_PWM(2, 5000, 0);
AVR_PWM* PWM_Instance2 = new AVR_PWM(3, 5000, 0); // Tried with only one instance per timer, setting different pins on the same instance.
PWM_Instance->setPWM(2, 5000, 50);
//delay(4000); //to be able see on oscilloscope.
PWM_Instance2->setPWM(3, 5000, 50); //That disables PWM on pin2 and enables PWM on pin3. I just want to have both
}
```