zu Hilfe und Hallo!
1 Byte kann 256 Werte annehmen. 0...255. Soweit bin ich ja auch an Bord.
Wenn ich jetzt eine PWM mit 8 Bit Auflösung einstelle, kann ich auch 256
Werte einstellen:
0 - PWM aus, Signal immer 0
255 - PWM immer an, also Signal immer 1
aaaaber was ist jetzt 50% Tastgrad? Kann ich gar nicht einstellen, außer
ich habe eine ungerade Anzahl an Werten im möglichen Bereich.
Ich weiß, das ist vielleicht ein lächerliches Problem, aber ich
verzweifle gerade. Und nicht nötig zu flamen....
Kann mir wer helfen?
Ich bin noch raus.
Wenn ich statt 255 einfach mal 3 annehme also von 0..3, sprich 4 Werte
die angenommen werden.
Dann ist doch einfach keine Mitte als 50% da?
0 aus
1 ?%
2 ?%
3 an
Dan schrieb:> aaaaber was ist jetzt 50% Tastgrad? Kann ich gar nicht einstellen, außer> ich habe eine ungerade Anzahl an Werten im möglichen Bereich.
So ist es...
War das schon die Frage? Oder was man dagegen tun kann?
Es gibt auch Microcontroller und PWM-Modi, wo 0 nicht "immer aus"
bedeutet.
--> "Es kommt darauf an"
Wenn es so genau geht, musst du eben probieren+messen und/oder dir das
Datenblatt reinziehen, allgemein gültig sagen kann man es nicht.
Moin,
Dan schrieb:> 0 - PWM aus, Signal immer 0> 255 - PWM immer an, also Signal immer 1
Deutlich weniger Probleme bei solchen Definitionen macht:
0 - PWM aus, Signal immer 0
255 - Signal fuer 255 Takte 1, 1 Takt 0
256 - Signal immer 1 (Kommt aber halt nicht vor, weil's nicht mehr in 8
bit passt)
Gruss
WK
Herman Kokoschka schrieb:> Dan schrieb:>> 0 aus>> 1 ?%>> 2 ?%>> 3 an>> 0 aus> 1 aus> 2 an> 3 an>> Genau 50%.> Wo ist das Problem?
Dass du die Frage falsch verstanden hast. Was er wohl meine, war der
Wert im Compare-Register:
0 = Tastgrad 0% ("aus")
1 = Tastgrad 33,3%
2 = Tastgrad 66,6%
3 = Tastgrad 100% ("an")
Da gibt's dann kein "genau 50%", es sei denn, du kannst einen Wert von
1,5 ins Compare-Register laden. :)
Das setzt aber voraus, dass die beiden Tastgrade 0% und 100% überhaupt
einstellbar sind. Prinzipiell sollte man der Doku des µC entnehmen, wie
das gehandhabt ist. Beim AVR z.B. kommt im Fast-PWM-Mode bei 0 ein
Tastgrad von 1/256 raus. Exakt 50% hat man dann bei 127 (entspricht 128
Takte an und 128 Takte aus).
Dan schrieb:> Irgendwie das es keine richtige Mitte gibt wenn man rechnet...>> Bei 4 Möglichen werten gibts doch keine 'richtige' Mitte. seufz
Doch, natürlich gibt es die:
Wert Takte an Takte aus Duty %
0 0 4 0
1 1 3 25
2 2 2 50
3 3 1 75
Dein Problem ist, dass du nicht verstanden hast, dass es bei Fast-PWM
keine
100% gibt (oder auch wahlweise: keine 0%). Es gibt an einem der beiden
Enden der Skala immer einen Glitch von der Dauer eines Taktes.
Bei 8 Bit bedeutet das, dass das Maximum 255/256 = 99,6% ist.
Das steht aber alles auch im Datenblatt. Man muss nur seine Faulheit
überwinden und dieses auch lesen...
c-hater schrieb:> Das steht aber alles auch im Datenblatt. Man muss nur seine Faulheit> überwinden und dieses auch lesen...
Mit lesen alleine ist es nicht immer getan ...
Man muss auch akzeptieren können, dass sich bei einm PWM modulierten
Signal mit endlicher Auflösung nicht jeder Tastgrad mit beliebiger
Genauigkeit einstellen lässt. Runde Zahlen im Dezimalsystem führen bei
einem realen PWM-Generator nicht unbedingt auf genau einstellbare Werte.
Es gibt immer die Möglichkeit, den Tastgrad zu modulieren, d.h.
beispielsweise laufend zwischen 127 und 128 umzuschalten, um sich im
Mittel Zwischenwerten möglichst gut anzunähern.
Wolfgang schrieb:> Mit lesen alleine ist es nicht immer getan
Stimmt, über das Gelesene nachdenken muss man natürlich auch, am Besten
mit Brain 1.0.0 oder aktueller, nicht mit z.B. Brain 0.2.7 oder
Ähnlichem. Aber mehr ist nicht nötig ;)