Forum: Mikrocontroller und Digitale Elektronik ATtiny13 PWM Top einstellen


von Typhoon (Gast)


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

von spess53 (Gast)


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

von Karl H. (kbuchegg)


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

von Typhoon (Gast)


Lesenswert?

Mehr wollte ich nicht wissen, werde ich dann probieren. Danke

von Typhoon (Gast)


Lesenswert?

Wird der PWM dann immer noch am Pin OC0A ausgegeben?

von Karl H. (kbuchegg)


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?

von Typhoon (Gast)


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

von Karl H. (kbuchegg)


Lesenswert?

Den richtigen Pin auf Output schalten nicht vergessen

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.