Hallo, ich möchte am PortC zwei Spulen mit Eisenkern, also zwei Elektromagneten, über eine externe Schaltung anschließen und getrennt voneinander steuern. Hierzu möchte ich an zwei Pins von PortC jeweils zwei unterschiedliche analoge Steuerspannungen über zwei PWM-Signale erzeugen.
Diese beiden Spannungen (also die PWM-Signale) möchte ich später über das UART vom PC aus steuern können.

Ich benutze einen Atmel Atmega32.

Nun meine Frage.: Muss ich zur Erzeugung der beiden PWM-Signale jeweils die beiden 8-bit Timer/Counter (8-bit Timer/Counter0, 8-bit Timer/Counter2) benutzen oder ist das nicht nötig? Reicht es aus den 16-bit Timer/Counter1 zu verwenden und über die beiden Output Compare Register 1A und 1B (OCR1A, OCR1b) zwei getrennte Signale zu erzeugen.

Hierzu habe ich folgenden Ansatz und weiss nun aber nicht, ob das so funktionieren kann.:

Code:
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

static void enable_pwm(void)
{
   TCCR1A = 0x00;  //Timer auf 0
   TCCR1B = 0x00;
   
   TCCR1A |= (1<<COM1A1) | (1<<COM1A0) | (1<<COM1B1) | (1<<COM1B0) | (1<<WGM10);  //Timer einstellen
   TCCR1B |= (1<<CS10) | (1<<CS12); 

}

int main(void)
{

   uint16_t var_a, var_b;
   
   DDRC = (1 << DDC4) | (1 << DDC5);
   PORTC = 0x00;
   
   enable_pwm();

   while (1)
	{  
  
   	OCR1BL = var_b;  // Kanal 1 verschiedene Werte
   	OCR1AL = var_a;  // Kanal 2 verschiedene Werte
	   	
	}
   
}
Es wäre nett, wenn mir jemand weiterhelfen könnte und gegebenenfalls meinen Quelltext analysiert und korrigiert. Danke.