C Control PRO Unit Mega 128 198219 用户手册

产品代码
198219
下载
页码 429
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
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  (  
).  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 
Beispiel: Pulsbreitenmessung (Projekt PMessung) 434 µs (100 x 4,34 µs, siehe 
) einschalten
word PM_Wert;
void Timer1_ISR(void)
{
    int irqcnt;