Yup.
Capture-Compare Register. Es dient in diesem Fall dazu, den Timer-Zaehlerstand zu beobachten und beim programmierten Wert etwas umzuschalten, hier einen Port Pin.
Im Prinzip ja, wobei das seine Grenzen hat. Zum einen Toleranzen in den Widerstandswerten. Zum anderen kommt noch der Rdson der Ausgangstreiber des uC Ports hinzu, meist um die 20-40ohm. Letzteres kann man vermeiden, indem man einen Gate Driver nachschaltet, doch dann faengt es an, aufwendig zu werden.
Pendeln? Der zweite Port soll nur Zwischenwerte hinzufuegen, nicht den ersten Port entlasten.
Im Prinzip laeuft das so: Die Software zaehlt den Timer hoch und erstmal wird nur Port A1 bedient. Das PWM-Tastverhaeltnis steigt. Da mit der ganzen Chose ja irgendwas kalibriert werden soll, sieht die Software ploetzlich "Oh, sind wir ein wenig ueber das Ziel raus, aber nur ein wenig". Dann wird einen Timer Step zurueckgeschaltet und nun mit dem zweiten CC Register der Port A2 in seinem PWM-Tastverhaeltnis hochgefahren. Bis die Software sieht, dass alles eingeregelt ist. Auf diese Art bekommt man auch bei hohen Widerstandstoleranzen statt z.B. 8 Bits nun 16 Bit Granularitaet.
Wenn man den Ripple wegfiltert, kann man dies fast beliebig hoch treiben, bis man an die Rauschgrenzen des Systems kommt. Dazu muss der uC recht ruhig gehalten werden, denn auf dessen Die entsteht mehr Jitter als viele denken. Allein das setzt dem ganzen eine Grenze.
Bei meiner letzten Geschichte dieser Art hatte ich anfangs gefragt, ob der uC auch wirklich genug PS haette, um das noch mit reinzupacken. Klar haette er das, hiess es, waere doch gelacht. Am Ende ging dem uC aber die Puste aus.