ATtiny13 PWM Top einstellen

Gast #1642344
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/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
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
#1642349
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

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