Verschiedene Rechteckwellen von einem Mikrocontroller

Ich mache ein Projekt und brauche den Mikrocontroller (ATmega328), um diese beiden Dinge zu tun:

  • Generieren Sie eine zu filternde Rechteckwelle und erhalten Sie eine Gleichspannung (die sich linear mit dem Arbeitszyklus ändert).
  • Generieren Sie eine Rechteckwelle (50 % Einschaltdauer) mit einer bestimmten Periode

Das Mikro liest seine Eingangspins ständig, da sich die Gleichspannung und die benötigte Zeit jederzeit ändern können.

Ich hatte daran gedacht, den ersten mit PWM zu machen und den zweiten manuell einen Ausgangspin zu setzen oder ihn zu löschen und die Periode mit einem Timer zu zählen. Meine Frage ist jedoch: Können diese beiden Dinge zusammen getan werden?

Ich denke, dass der Mikrocontroller im Code einer Routine nach der anderen folgen kann. Wie könnte ich also diese beiden Wellen gleichzeitig erzeugen (wenn möglich)? Wenn dies möglich ist, könnten zwei verschiedene PWM-Ausgänge verwendet werden, um zwei verschiedene Signale zu erzeugen, anstatt einen Timer zu verwenden und das zweite manuell zu erzeugen?

Antworten (1)

Jeder OCnx-Pin des ATmega328 kann seine eigene unabhängige PWM-Wellenform ausgeben. Zusätzlich kann jeder Zeitgeber ("n") seine eigene Frequenz und/oder Phase haben. Zusätzlich verfügt der ATmega328 PB über einen Pin, der eine Wellenform ausgeben kann, die eine Modulation von zwei Wellenformen ist, die von separaten Timern erzeugt werden.

Da Sie sagen, "die benötigte Gleichspannung und die benötigte Zeit können sich jederzeit ändern", lesen Sie das Datenblatt sorgfältig durch, um herauszufinden, wann Sie die Werte, die zum Erzeugen der Wellenformen verwendet werden, sicher ändern können. Wenn die Werte zum falschen Zeitpunkt geändert werden, kann die Wellenform glitzern, wodurch Sie ein Signal erhalten, das keinen DC von 50 % hat.

Hallo Ignacio, danke für deine Antwort. Die beiden Signale können also gleichzeitig erzeugt werden ? Und was das letzte angeht, was du gesagt hast, ich habe es nicht verstanden. Warum sagen Sie, dass es eine Zeit geben kann, in der es falsch wäre, die Werte zu ändern?
Werfen Sie einen Blick auf die Timing-Diagramme in den Timer-Abschnitten des Datenblatts sowie auf die Wavegen-Auswahltabelle des Registerbeschreibungs-Unterabschnitts desselben.