www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny13 PWM Top einstellen


Autor: Typhoon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen

Ich habe eine kleine Drehzahlsteuerung für einen Motor gebaut.

Ich benutze einen ATtiny13 
http://www.atmel.com/dyn/resources/prod_documents/...

Das Problem: Das Analoge Signal für die Drehzahlsteuerung bringt mir nur 
0-3.8V, das ist Digital ungefähr 0-190. Ich möchte nun den TOP beim PWM 
selber definieren, sodass sich 190 statt 256 Schritte ergeben. 
Anscheinend habe ich ein Verständnisproblem mit dem Datenblatt.

Meine Initialisierung sieht so aus:

ldi temp1, (1<<COM0A1)|(1<<COM0A0)|(1<<WGM00) // PhaseCorrect PWM
out TCCR0A, temp1                           // Set OC0A on Compare Match
ldi temp1, (1<<CS00)|(1<<WGM02)             // Prescaler 1, PWM Modus 5
out TCCR0B, temp1

Meinen Top setze ich nun in OCR0A richtig? Wo kommt dann mein 
Comparewert  hin? Ich habe kürzlich gelesen das man diesen in OCR0B 
schreiben muss. Stimmt das? Muss ich dazu noch ein Bit in einem 
Steuerregister setzen?

Danke für eine Erleuchtung :)

Freundliche Grüsse

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Meinen Top setze ich nun in OCR0A richtig?

Ja.

>Wo kommt dann mein Comparewert  hin? Ich habe kürzlich gelesen das man
>diesen in OCR0B schreiben muss. Stimmt das?

Ja.

> Muss ich dazu noch ein Bit in einem Steuerregister setzen?

Nein.

MfG Spess

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast 2 PWM Kanäle am Timer 0. Beide gesteuert über das jeweilige 
Output Compare Match Register. OCR0A und OCR0B
Wenn du OCR0A nicht mehr benutzen kannst, weil du es als TOP Wert nehmen 
willst, dann bleibt dir nur noch der B-Kanal um damit eine PWM zu 
realisieren. Und ja, die PWM wird dann über OCR0B gesteuert.


ldi temp1, (1<<COM0A1)|(1<<COM0A0)|(
Wenn deine PWM auf dem B Kanal läuft, wird es wohl nicht so sinnvoll 
sein, wenn du den A-Kanal auf den OC0A Pin durchschaltest

Autor: Typhoon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehr wollte ich nicht wissen, werde ich dann probieren. Danke

Autor: Typhoon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wird der PWM dann immer noch am Pin OC0A ausgegeben?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Typhoon schrieb:
> Wird der PWM dann immer noch am Pin OC0A ausgegeben?

Was denkst du?
Wenn der A Kanal nicht benutzbar ist, weil das Steuerregister als Top 
Wert fungieren muss, sondern nur noch der B-Kanal - welche Output Pins 
wirst du dann benutzen müssen?

Autor: Typhoon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ahh jetzt wird mir einiges klar.

Dann muss ich wohl

ldi temp1, (1<<COM0B1)|(1<<COM0B0) setzen und den B-Kanal benutzen, weil 
im A-Kanal der TOP definiert ist.

Danke

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den richtigen Pin auf Output schalten nicht vergessen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.