Timer3 Phasenverschiebung

Hallo zusammen,

ich habe ein Problem bei der Programmierung:
Ich benötige ein komplementäres PWM-Signal mit exakt gleicher Frequenz.
Ich habe den zweiten PWM Ausgang einfach später initialisiert, aber das funktioniert leider nicht, wie ich es will. Das Oszi zeigt keine Phasenverschiebung an.

#include "TimerThree.h"
#include "TimerOne.h"
#include <LiquidCrystal.h>


LiquidCrystal lcd(8, 9, 4, 5, 6, 7);      //Definiert die Pins fuer das LCD-Display

int PWMAusgang1 = 2;  //2,3 oder 5
int PWMAusgang2 = 3;  //2,3 oder 5
double Frequenz = 47000;
long Periodendauer =  (1 / Frequenz * 1000000);
double tastverhaeltnis = 50;
double einschaltzeit;

void setup() {

  
  einschaltzeit = (tastverhaeltnis / 100 * 1024);
  int verzoegerung = (int)((100-tastverhaeltnis)*Periodendauer);
  

  pinMode(PWMAusgang1, OUTPUT);                 //Definiere Pins als Output
  pinMode(PWMAusgang2, OUTPUT);
  Timer3.initialize(Periodendauer);             //Inizialisiere Timer mit Periodendauer

  Timer3.pwm(PWMAusgang1, einschaltzeit);
  delay(verzoegerung);
  Timer3.pwm(PWMAusgang2, einschaltzeit);

}

Hat jemand eine Idee, wie ich das Problem beheben könnte?

Programmiere den Timer direkt statt mit Libraries. Dann hast du über das TCCRnA Register volle Kontrolle darüber was die Timer Pins tun.

Hallo,

ich programmiere die auch lieber direkt. Hier hatte ich einmal zur Konfig etwas niedergeschrieben. http://forum.arduino.cc/index.php?topic=519208.msg3538992#msg3538992

Ich verstehe nur nicht wie du die Phasenverschiebung meinst bzw. haben möchtest. Was soll wie verschoben sein?

Doc_Arduino: Ich verstehe nur nicht wie du die Phasenverschiebung meinst bzw. haben möchtest. Was soll wie verschoben sein?

Er schreibt was von "komplementär". Das wäre für mich 180° verschoben. Oder einfacher gesagt invertiert

Hallo,

naja, invertiert wäre für mich was anderes wie zeitlich verschoben. :slight_smile:
Ich kann nicht herauslesen was er genau meint. Am besten er malt es auf.

Wenn du ein Signal um 180° verschiebst ist es genau invertiert.

Aber ja, was genau gewollt ist ist noch so klar. Aber egal was, es wird mit den Libraries gar nicht oder nicht richtig gehen

Dabei ist es doch nur 1 zusätzliches Bit, welches getoggelt werden will, um die Polarität eines PWM Kanal zu tauschen.