C Control PRO UNIT MEGA 32 198206 Benutzerhandbuch

Produktcode
198206
Seite von 134
110
Compiler
© 2005 Conrad Electronic
1. Beispiel: Frequenzerzeugung mit 125 * 4,34 µs = 1085µs  Periode
125
,ps_64);
2. Beispiel: Frequenzerzeugung mit 10*1,085 µs =10,85 µs Periode und 2*1,085µs =2,17 µs
Phasenverschiebung
(
10
,
2
,ps_8);
5.3.16.3 Pulsweitenmodulation
Es stehen zwei unabhängige Timer für die Pulsweitenmodulation zur Verfügung. Timer_0 mit 8 Bit und
Timer_1 mit 16 Bit. Mit einer Pulsweitenmodulation lässt sich sehr einfach ein Digital-Analog-Wandler
realisieren.
Timer0 (8 Bit)
Beispiel: Pulsweitenmodulation mit 138,9 µs Periode und 5,42 µs Pulsweite, geändert auf  10,84 µs
Pulsweite
Timer_T0PWM(
10
,
2
);  
//  Puls: 10*542,5 ns = 5,42 µs, Periode: 256*542,5 ns =
138,9 µs
Timer_T0PW(
20
);   
//  Puls: 20*542,5 ns = 10,84 µs
Timer1 (16 Bit)
Beispiel: Pulsweitenmodulation mit 6,4 ms Periode und 1,28 ms Pulsweite Kanal A und 640 µs
Pulsweite Kanal B
Timer_T1PWMX(
10
,
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
5.3.16.4 Timerfunktionen
Es stehen zwei unabhängige Timer  zur Verfügung. Timer_0 mit 8 Bit und Timer_1 mit 16 Bit. Die Timer
verfügen über einen programmierbaren Vorteiler, siehe Tabelle.  Mit dem Timer lässt sich eine Zeit
festlegen, nach der ein Interrupt ausgelöst wird. In der Interruptroutine lassen sich dann bestimmte
Verarbeitungsschritte ausführen.
Timer_T0Time (8 Bit)
)
einschalten
void Timer0_ISR(void)
{
    int  irqcnt;
    Port_WriteBit(
0
,
1
);
() ;                       
// Timer0 anhalten
    irqcnt=Irq_GetCount(INT_TIM0COMP);
}