Arduino Mega 2560 Timer 4 Pin 7 und 8 nutzen

Hallo,

versuche am Arduino Mega die Auflöung der PWM zu verändern. Dies hat mit unten stehenden Code für Timer 4 und Pin 6 funktioniert. Leider machen Pin 7 und 8 da nicht das gleiche.

Die Timereinstellungen sind doch für alle 3 Ausgänge oder nicht?

Hier mein Code:

#define LEDValue1 OCR4A
#define LEDValue2 OCR4B


const int PWMMax = 4095;
int value = 1;
int direction = 1;

void setup() { 
  pinMode(46,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  
 
  TCCR4A = (1 << COM1A1) | (1 << WGM11);                // Enable Fast PWM on OC1A (Pin 9)
  
  TCCR4B = (1 << WGM13) | (1 << WGM12) | (1 << CS10);   // Mode 14 Fast PWM/ (TOP = ICR1), pre-scale = 1
  
  ICR4 = PWMMax;  //Set the TOP value for 12-bit PWM
  
  LEDValue1 = 0;      //Set the PWM output to full off.
  LEDValue2 = 0;      //Set the PWM output to full off.

}

void loop() {
  //Fade the LED between 0 and PWMMax and then back to 0
  value += direction;
  if (value <=0){
    direction = 1;
  }
  else if (value >= PWMMax){
    direction = -1;
  }
  LEDValue1 = value;
  LEDValue2 = value;

  delay(10);
}

Danke für Eure Tipps.

Du solltest der Klarheit halber auch die Bit-Bezeichnungen auf Timer4 anpassen. Also u.a. COM4A1 statt COM1A1

Dann schau dir mal das TCCR4A Register genau an. Da siehst du dass du jeden Pin einzeln aktivieren kannst/musst. Du hast in Moment nur Kanal A aktiviert. Nicht Kanal B und C.

Und du brauchst glaube auch noch das Compare Match Register C