Forum: Mikrocontroller und Digitale Elektronik ATTiny861 Timer1 PWM6 Mode


von Norbert S. (norberts)


Lesenswert?

Hi,

Ich möchte einen Tiny861 Timer1 im PWM6 Mode betreiben.
Wenn ich richtig verstehe, sollte es mit den Bits TCCR1D.WGM10 und 
TCCR1D.WGM11 jeweils "1" als Dual Slope gehen, also quasi wie Phase 
Correct.
WGM10=1, WGM11=1.
Timer zählt immer rauf und runter.
Tut er aber offensichtlich nicht, bei 16MHz habe ich mit Prescaler 4 
eine Periode von knapp 16kHz, es sollten bei 512Bit (256 rauf und 
runter) aber knapp 8kHz sein.
Es scheint auch komplett egal zu sein, ob ich die WGM auf 11 oder 10 
stelle, der macht immer Single Slope.

Die Ausgänge sind alle 6 angeklemmt (nur so geht auch der invertierte 
Ausgang, muß man auch erstmal im Datasheet finden):
Tccr1a.com1a1 = 0
Tccr1a.com1a0 = 1
Tccr1a.com1b1 = 0
Tccr1a.com1b0 = 1
Tccr1c.com1d1 = 0
Tccr1c.com1d0 = 1

Ja, OCR1A und B sind in A, OCR1D ist in C - nicht wundern, stimmt so.

Für die Phasen schalte ich dann mit den TCCR1E.OC1OE5:OC1OE0 die 
Ausgänge an und aus. Die Portbits sind auf 1, was bei meiner Beschaltung 
dann "Aus" ist.
Das funktioniert soweit ganz prima.

Was mir Sorge macht ist, daß ich da so viel ausprobieren musste und da 
eine Sache (WGM Dual vs. Single Slope) definitiv nicht zum Datasheet 
passt.
Selbst die Nomenklatur der Register ist zerwürfelt, ich befürchte da 
immer noch Fußangeln oder Fehler im Datasheet, auf die ich so ohne 
Weiteres nicht komme.

Also Fragen:
Was ist mit Dual Slope, wieso geht das nicht?
Noch irgendwelche Tricks oder Gemeinheiten, wie z.B. die invertierten 
Ausgänge gehen nur wenn man Com1x1:0 auf "01" stellt?

Gruß,
Norbert

von S. Landolt (Gast)


Lesenswert?

Wie sieht der Originalcode der Inititalisierungssequenz aus?

von Norbert S. (norberts)


Lesenswert?

Hi,

ich hatte es verkackt.
Falsches Register zu fassen gehabt, reiner Zufall, daß das überhaupt so 
ähnlich getan hat wie ich wollte.
Jetzt geht alles perfekt, das Datenblatt hat doch nicht gelogen.

Gruß,
Norbert

von S. Landolt (Gast)


Lesenswert?

Dachte ich mir, hier geht es nämlich auf Anhieb.
Vielleicht ist 02:58 keine so gute Zeit.

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.