Forum: Mikrocontroller und Digitale Elektronik AVR PWM 100% möglich?


von Artjomka (Gast)


Lesenswert?

Ich habe Timer 1 vom Tiny25 im PWM Betrieb um 3 PWMs zu erzeugen (Fast 
PWM mode).

Der Ausgang wird beim Compare-Match gesetzt. Also bei Erreichen von 
BOTTOM (0x00) wird der Ausgang auf LOW gesetzt, bei Compare-Match auf 
HIGH gesetzt. Soweit so gut.

Wenn ich jetzt 0xFF als Compare-Match Wert verwende, kann ich dann davon 
ausgehen, dass bei 0xFF ein Compare-Match erfolgt (also Ausgang auf 
HIGH) und bei 0x00 der Ausgang wieder zurück gesetzt wird auf LOW? Oder 
ist der Ausgang dauerhaft LOW?

Ich würde den Ausgang gerne dauerhaft auf LOW haben (also 100% 
Duty-Cycle, da mein Signal LOW-Aktiv ist). Ein kurzer High-Puls für eine 
Timer-Periode wäre nicht so gut.

von Karl H. (kbuchegg)


Lesenswert?

Artjomka schrieb:

> Wenn ich jetzt 0xFF als Compare-Match Wert verwende, kann ich dann davon
> ausgehen, dass bei 0xFF ein Compare-Match erfolgt (also Ausgang auf
> HIGH) und bei 0x00 der Ausgang wieder zurück gesetzt wird auf LOW?

Genau so ist das.

> Ich würde den Ausgang gerne dauerhaft auf LOW haben (also 100%
> Duty-Cycle, da mein Signal LOW-Aktiv ist). Ein kurzer High-Puls für eine
> Timer-Periode wäre nicht so gut.

Dann kannst du dir überlegen, ob du die PWM nicht einfach umdrehst und 
du damit leben kannst, dass 0% nicht Dauer-High bedeutet.
Aber irgendeinen Tod musst du sterben. Der Wert an einem Ende der Skala 
ist nicht erreichbar.
Wenn du das brauchst, dann musst du dem Timer den Pin an diesen Wertn 
'wegnehmen' und selbst auf Dauer-Low (oder Dauer-High) stellen.

von Ingo (Gast)


Lesenswert?

Artjomka schrieb:
> Ich würde den Ausgang gerne dauerhaft auf LOW haben (also 100%
> Duty-Cycle, da mein Signal LOW-Aktiv ist). Ein kurzer High-Puls für eine
> Timer-Periode wäre nicht so gut.

Dann fang das ab, schalte die PWM bei 100% und 0% ab und setz den Pin 
"per Hand"! Ansonsten hast du immer Spikes, wenn auch nur kurze...



Ingo

von Falk B. (falk)


Lesenswert?

@ Artjomka (Gast)

>Ich würde den Ausgang gerne dauerhaft auf LOW haben (also 100%
>Duty-Cycle, da mein Signal LOW-Aktiv ist). Ein kurzer High-Puls für eine
>Timer-Periode wäre nicht so gut.

Drei Möglichkeiten

a) PWM-Wert 0 extra behandeln und dabei den Pin vom OCR abkoppeln und 
manuell auf LOW setzen.
b) PWM-Modus invertieren und nicht ganz 100% PWM erreichen
c) Phase Correct PWM nutzen, dann geht auch 0 ohne SOnderbehandlung

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.