zum Directory-modus

PIC-Zeiterfassung

CCP-Modul

Das CCP-Modul ist eine programmierbare hardwaremäßige Erweiterung zu den Zählern TMR1 und TMR2. Beide CCP-Module können mit dem TMR1 Capture- und Compareaufgaben erledigen und mit TMR2 die PWM-Ausgabe realisieren. Je nach PIC16-Typ sind bis zu 2 CCP-Module vorhanden, welche unabhängig voneinander verwendbar sind.

Die Register des CCP-Moduls sind:

  • CCP1CON-Register, CCPR1L-Register, CCPR1H-Register
  • CCP2CON-Register, CCPR2L-Register, CCPR2H-Register

Das CCPxCON-Register schaltet das Modul in den gewünschten Modus. Wenn Bit 3 auf 0 gesetzt ist, ist der Capture-Modus aktiviert. Bit 0 bis 3 unterscheiden, ob das Ereignis an der steigenden oder an der fallenden Flanke des RC2/CCP1 Ports eintreten soll und wieviele Flanken im CCP1PRE-Register gezählt werden sollen, bevor das Ereignis eintritt (wahlweise jede, jede 2., jede 4. oder jede 16.).

Der Compare-Modus ist aktiviert, wenn Bit 3 im CCP1CON -Register gesetzt ist. Mit Bit 0 bis Bit 2 kann nun zwischen drei Ereignissen gewählt werden, und zwar steigende, fallende oder gleichbleibende Flanke am Pin RC2/CCP1. Die letzte Art der Reaktion ist abhängig vom CCP-Modul, welches die Meldung absetzt. Das CCP1-Modul kann im Modus 0Bh den TMR1 zurücksetzen. Erreicht nun der TMR1 den im Register CCPR1H:CCPR1L gesetzten Wert, so wird das entsprechende Ereignis ausgelöst. Wenn vorher die Voraussetzungen geschaffen wurden, wird gleichzeitig ein Interrupt ausgelöst.

Ein weiterer Modus ist der Pulsweiten-Modus (PWM). Dieser funktioniert nur mit dem TMR2. Mit dem PR2-Register wird die ganze Periode des Signals eingestellt. Das CCPRxL-Register stellt das sogenannte Duty-Cycle Register dar. Wenn jetzt der Überlauf-Wert des Timers erreicht wird, passieren zwei Dinge: zum einen wird der Pin RC2/CCP1 gesetzt, zum anderen wird der Wert des CCPRxL-Registers in das CCPRxH-Register transferiert, das während des PWM-Modus nur lesbar ist.

Die Periode des PWM ist durch folgende Formel bestimmt:

P = [(PR2)+1] * 4 Tosc * (TMR2 Vorteilerwert)

und der Duty Cycle:

DC = (DC1) * Tosc * (TMR2 Vorteilerwert)

Seite 2 von 5