PWM Signal mit ATtiny 13 (???)

Gast #331488
Lesenswert?

Hallo zusammen,

bin ein absoluter Rookie auf dem Gebiet der
Mikrokontrollerprogrammierung und arbeite mich gerade in deren
Funktionsweise ein. Nun möchte ich gerne mit einem ATtiny13 zwei PWM
Signale generieren, dass ganze soll in Assembler programmiert werden.
Kann mir evtl einer helfen bzw. hat jmd einen funktionsfähigen
Beispielcode ?
Wäre um jede Hilfe dankbar.

Vielen Dank im Vorraus.

Jörg
#331490
Lesenswert?

> Nun möchte ich gerne mit einem ATtiny13 zwei PWM
> Signale generieren, dass ganze soll in Assembler programmiert
> werden.

Der Tiny13 hat doch einen Timer mit 2 Compare-Einheiten, die direkt die
PWM-Ausgänge (OC0A, OC0B) schalten können. Einzelheiten findest du im
Datenblatt des Tiny13 ab Seite 55. Die Register und deren Bits sind ab
Seite 66 erklärt.

Wie du die einzelnen Bits konfigurieren musst (also welcher PWM-Mode),
ist von deiner konkreten Anwendung abhängig. Einen Motor kannst du im
Fast-PWM-Mode steuern, einen Servoimpuls erzeugst du am besten per
Software-PWM.

...
Gast #331491
Lesenswert?

@unbekannt: JA, die forensuche hab ich benutzt und alle beiträge bis
2003 durchforstet....

@HanneS: das datenblatt hab ich auch mehrfach gelesen. nur ist es so,
dass wenn man noch NIE etwas mit assembler programmiert hat, dann fällt
es schwer das sofort auf anhieb zu coden. von daher fragte ich nach
einem beispielprogramm....
#331492
Lesenswert?

> nur ist es so,
> dass wenn man noch NIE etwas mit assembler programmiert hat, dann
> fällt
> es schwer das sofort auf anhieb zu coden. von daher fragte ich nach
> einem beispielprogramm....

Also wenn dir die Beispiele in der Codesammlung und im AVR-Tutorial
nicht zusagen oder nicht reichen, dann kannst du dich auch gern mal
hier umsehen: www.hanneslux.de/avr/
Mit Tiny13 habe ich zwar auch noch nichts gemacht, aber etwas Einblick
in AVR-ASM kannst du dort schon bekommen. Fang am besten hier an:
http://www.hanneslux.de/avr/divers/index.html

...
Gast #331494
Lesenswert?

Hab nun zwei PWM Signale generiert, die jeweils mit der Frequenz der
internen clk, sprich 37,5kHZ laufen.
Der nächste Schritt wäre nun die beiden PWM Signale versetzt
voneinander zu betreiben und eine gewisse Totzeit zwischen ihnen
herzustellen. Hat da evtl jemand einen Tipp für mich wie ich das mit
Assembler programmieren kann ?
Gast #331495
Lesenswert?

Es fehlt mir nur noch eine Totzeit zwischen den Signalen.
Hab da aber noch eine allgemeine Frage zum ATtiny 13. Er schwingt in
der Regel mit einer Frequenz von 9,6MHz. Ich habe mich nun schon für
den Fast-PWM Mode entschieden und erreiche damit eine Frequenz von etwa
37,5kHz. Würde aber gerne eine Frequenz von 50kHz haben. Ist das
überhaupt möglich ????
Gast #331496
Lesenswert?

Schau Dir mal den Modus Fast PWM mit OCRA als TOP Value an (WGM Modus
Nr. 7). Damit kommste im Prinzip auch höher, allerdings dann mit
geringerer Auflösung. Sonst gibts bei 9,6MHz keine Möglichkeit.
Gast #331499
Lesenswert?

Hab jetzt 180° Phasenverschiebung erzeugt, da dies für mein
Gegentaktsignal notwendig ist. Momentan habe ich allerdings einen
Tastgrad von 50%, sprich keinerlei Totzeit. Dies wäre nun noch
einzubringen, nur weiss ich noch nicht wie das zu implementieren ist.
Gast #331500
Lesenswert?

stimmt... müssen natürlich 180° sein...
Sonst müsste man die Startwerte der Timer (Low-Phase, wenn sie die
"Standby-Phase" ist) so wählen, dass die Totzeit erreicht wird.
Beim ersten Interrupt muß man sie dann auf die "richtige" Zeit
einstellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren