User manual
371 C-Control Pro IDE
© 2013 Conrad Electronic
Beispiel: Pulsweitenmodulation mit 6,4 ms Periode und 1,28 ms Pulsweite Kanal A und 640 µs Pulswei-
te Kanal B
Timer_T1PWMX(100,20,10,PS_1024); // Periode: 100*69,44 µs = 6,94 ms
// PulsA: 20*69,44 µs = 1,389 ms
// PulsB: 10*69,44 µs = 694,4 µs
Bei den Timer PWM Funktionen ist ein Wert von Null für den Pulsweiten Parameter nicht er-
laubt, und schaltet den Ausgang des PIN auch nicht aus. Um ein low Signal zu erzeugen, muss der
Timer ausgeschaltet werden (Timer_Disable) und der PIN auf Ausgang geschaltet werden. Benutzt
man eine PWM Funktion die mehrere PWM Signale erzeugt, dann eine PWM Funktion aufrufen
(z.B.Timer_T1PWM), die den PIN, der auf low geschaltet werden soll, nicht umfaßt.
Ein Beispiel:
while(1)
{
Timer_T1PWMX(255,128,128,PS_8);
Timer_T1PWA(128);
Timer_T1PWB(128);
AbsDelay(1000);
// OC1B ausschalten
Timer_Disable(1);
Timer_T1PWM(255,128,PS_8);
Port_DataDirBit(14,1);
Port_WriteBit(14,0);
}
5.26.1.5 Puls & Periodenmessung
Mit Timer_1 oder Timer_3 (nur Mega128) können Pulsweiten oder Signalperioden gemessen werden.
Es wird mit Hilfe der Input Capture Funktion (spezielles Register des Controllers), die Zeit zwischen
zwei Flanken gemessen. Diese Funktion nutzt den Capture-Interrupt ( INT_TIM1CAPT). Der Puls
wird zwischen einer steigenden und der nächsten fallenden Signalflanke gemessen. Die Periode wird
zwischen zwei steigenden Signalflanken gemessen. Durch die Input Capture Funktion gehen Pro-
grammlaufzeiten nicht als Ungenauigkeit in das Meßergebnis ein. Mit dem programmierbaren Vortei-
ler kann die Auflösung des Timer_1 festgelegt werden. Vorteiler siehe Tabelle.
Beispiel: Pulsbreitenmessung (Projekt PMessung) 434 µs (100 x 4,34 µs, siehe Tabelle) einschalten
word PM_Wert;
void Timer1_ISR(void)
{
int irqcnt;