Veit D. schrieb:
> Zudem Atmel Studio nur TOCC1S0 oder TOCC1S1 kennt
Nö. Das kennt TOCCnS0 und TOCCnS1 mit n=0..7.
> Die rechte Spalte für OC2A müßte ja 10 oder 11 sein, kennt es aber
> nicht.
Was meinst du mit "kennt es nicht"?
> Außerdem ist im Register TOCPMSAx jeweils immer nur eine Bitstelle
> vorgesehen. Wie will man überhaupt den 3. Timerausgang aktivieren laut
> Tabelle unten drunter rechte Spalte?
OMG, du hast das Prinzip absolut nicht kapiert, dabei ist es wirklich
ganz einfach.
Also: Es gibt acht Port-Pins, über die man die insgesamt sechs
OC-Signale der drei Timer schicken kann. Da es vielfältig einstellbar
ist, welches davon auf welchem Pin landen soll, gibt es das klassische
Mapping der "alternate port functions" (OCnX) mit n: Timernummer und
X:OC-Kanal) hier nicht, statt dessen werden acht symbolische Signale
eingeführt, nämlich TOCCn. Es gibt eine direkte unveränderliche
Beziehung zwischen jedem TOCCn-Signal und dem dazu gehörenden Port-Pin.
Die findet man sowohl in den Pinouts ab Seite 2 des DB als auch in
Tabellenform ab Seite 63 für Port A bzw. ab Seite 68 für PortB.
Du wolltest im OP entweder PB2 oder PA6 haben, ich vereinfache mir mal
die Erklärung und lege fest, dass du PA6 haben willst. Das entspricht
nach o.g. Quellen dem symbolischen OC-Signal TOCC5.
Nachdem du das nun weisst, gehst du in die MUX-Tabelle, die du schon
gefunden hast und dort in die entsprechende Zeile für TOCC5. Da siehst
du, welche realen Timersignale du auf TOCC5 (und damit auf PA6) routen
kannst. Möglich ist an diesem Pin also jeweils OC-Kanal A der drei
vorhandenen Timer (Kanal B ginge nicht). In deinem OP wolltest du OC1A
haben, das geht also.
> Jetzt lese ich in der Spalte für OC1A oben "01".
Genau. Du musst also TOCC5S1:TOCC5S0 in TOCPMSA1 auf 01 setzen. Beachte:
das sind nicht Bit 0 und 1 in diesem Register, sondern die Bits 3 und
2!!!
Zusätzlich musst du auch noch TOCC5OE in TOCPMCOE setzen.
Also kommen für das Mapping folgende Anweisungen raus:
TOCPMSA1 |= (1<<TOCC5S0)
TOCPMCOE |= (1<<TOCC5OE)
> Außerdem ist im Register TOCPMSAx jeweils immer nur eine Bitstelle
> vorgesehen. Wie will man überhaupt den 3. Timerausgang aktivieren laut
> Tabelle unten drunter rechte Spalte?
Wenn du meine Erklärung verstanden hast, solltest du dir die Frage jetzt
selbst beantworten können. Nur noch als Anmerkung: Man kann alle sechs
OC-Kanäle gleichzeitig nach aussen führen. Und: man kann auch einen
einzelnen Kanal auf bis zu vier Pins routen. Und nein, das ist nicht
nutzlos, denn damit kann man nämlich den vierfachen Strom treiben...