Forum: Mikrocontroller und Digitale Elektronik Pwm berechnen?


von chris (Gast)


Lesenswert?

Hallo Forum,

wie aus der Überschrift hervorgeht habe ich ein Problem um eine PWM zu 
berechnen.

DATA:
ATmega8
f_t = 4MHZ
N   = Teiler 64
top = 1 = OCR1A/B

nur das ich es richtig verstehe es gibt eine Grundfrequenz wie errechnet 
sich eigentlich diese???? Denn im 2ten Punkt ist ja eigentlich die fout 
ja schon die veränderte oder nicht?????

2: fout = f_t/(N*(1+top) = 4Mhz/(64*(1+1)) = 31,25KHz  JA/Nein?? ich 
denke schon ^^

3: so d.h. doch eigentlich das von diesen 31,25Khz in Abhängigkeit von 
OCR1A/B der pin low oder high ist oder ist der pin für 31,25Khz(32µs) 
dies schon????

von PeWeEm (Gast)


Lesenswert?

Ich glaube, Du bringst die Begriffe Frequenz und Tastverhältnis 
durcheinander... ;-)

von chris (Gast)


Lesenswert?

warum????

von chris (Gast)


Lesenswert?

will, kann mir keiner helfen oder habe ich mich zu undeutlich 
ausgedrückt????


Wenn jemand ne Frage hat sollte ihn man nicht unbedingt dumm sterben 
lassen.

von hans (Gast)


Lesenswert?

Schau mal hier:

http://www.rn-wissen.de/index.php/Bascom_und_PWM

Steht zwar Bascom dabei, aber die Erklärung ist Sprachunabhängig ;)

hans

von Michael H. (michael_h45)


Lesenswert?

chris schrieb:
> Wenn jemand ne Frage hat sollte ihn man nicht unbedingt dumm sterben
> lassen.
Was glaubst du eig haben Leute vor der Verbreitung des Internet gemacht?
Nope, die sind nicht alle dumm gestorben.

von Hubert G. (hubertg)


Lesenswert?

Es kommt darauf an welche PWM du verwendest.
Mit Taktfrequenz durch Teiler hast du nur den Timer-Takt festgelegt.
Diesen Takt musst du noch durch deine PWM-Bit teilen damit du auf die 
PWM-Frequenz kommst.
Je nach Fast-PWM oder Phasen und Frequenzkorrekter PWM dann noch durch 
2.
Vielleicht hilft auch das:
http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM

von chris (Gast)


Lesenswert?

@hans

Danke für die Seite, und wie kann man das aus den Datenblatt heraus 
lesen denn dort steht ja

fout = f_t/(N*(1+top)

@Hubert G.

auch dir vielen dank und wo im datenblatt steht steht das ich das

 fout = f_t/(N*(1+top) nochmal durch 2 teilen muss????

bzw. meint man das, siehe datenblatt S.93

The waveform generated will have a maximum frequency of fOC1A = 
fclk_I/O/2 when OCR1A is set to zero (0x0000)

von Karl H. (kbuchegg)


Lesenswert?

chris schrieb:
> @hans
>
> Danke für die Seite, und wie kann man das aus den Datenblatt heraus
> lesen

Indem man sich klar macht, wie ein Timer eigentlich arbeitet.

Wenn du vor dich hinzählst, und zwar zählst du alle 1/100 Sekunde um 1 
höher, wie oft kannst du dann in 1 Sekunde bis 10 zählen, wenn du 
jedesmal wenn du bei 10 angelangt bist, wieder bei 0 anfängst?

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, ....

d.h. die Frequenz, wie oft du einen bestimmten Endwert in 1 Sekunde 
erreichst, hängt davon ab:

* in welchen Zeitabständen du immer um 1 höher zählst (vulgo: mit
  welcher Frequenz du zählst. Und zwar: mit welcher realen Frequenz
  du zählst. Wenn du 500 mal in der Sekunde mit einer Nadel gestochen
  wirst, du aber nur bei jedem 5 Nadelstich zählst, dann zählst du
  mit 100Hz, weil die Anregungsfrequenz 500Hz war und du einen Vor-
  teiler von 5 benutzt)

* bis zu welchem Endwert du zählst

Alles andere ergibt sich daraus. Auch diese Formel

> fout = f_t/(N*(1+top)

> auch dir vielen dank und wo im datenblatt steht steht das ich das
>
>  fout = f_t/(N*(1+top) nochmal durch 2 teilen muss????

Auch das ergibt sich durch Nachdenken.
Wenn du jedesmal wenn du bis 10 gekommen bist, das Licht entweder ein 
oder ausschaltest, je nachdem ob es schon brennt oder nicht, mit welcher 
Frequenz blinkt dann das Licht?


Auch mit Datenblatt ist eigenständiges Denken nicht verboten.

von Hubert G. (hubertg)


Lesenswert?

Datenblatt Seite 112 und 114, da stehen die jeweiligen Formeln.
Dort ist auch der Ablauf gut beschrieben.

von chris (Gast)


Lesenswert?

wie ein C/T funktioniert ist mir bekannt, nur bin ich bei der Berechnung 
und dem Simulieren im Studio auf unterschiedliche Ergebnisse gekommen 
und konnte mir nicht erklären warum,

@Karl heinz Buchegger

> Auch das ergibt sich durch Nachdenken.
> Wenn du jedesmal wenn du bis 10 gekommen bist, das Licht entweder ein
> oder ausschaltest, je nachdem ob es schon brennt oder nicht, mit welcher
> Frequenz blinkt dann das Licht?

> Auch mit Datenblatt ist eigenständiges Denken nicht verboten.

Im warsten Sinne des Wortes ist bei mir jetzt die Lampe angegangen. ^.^

War leider zu sehr auf den Timer fixiert.

Dank an KarlHeinz und Hubert für die Geduld und vernünftige Erklärungen.

von Michael H. (michael_h45)


Lesenswert?

chris schrieb:
> wie ein C/T funktioniert ist mir bekannt, nur bin ich bei der Berechnung
DAS ist eine dummdreiste und sowas von erlogene Behauptung!
Wenn dir das klar wäre, müsstest du hier nicht wie der erste Mensch auf 
Erden fragen.

Unglaublich...

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.