ATtiny13 PWM Top einstellen

Gast #1642344
Guten Morgen

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

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

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
Gast #1642348
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
#1642349
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
#1642352
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?
Gast #1642353
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.