|
Navigation: Bibliotheken > Timer > 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äßt sich sehr einfach ein Digital-Analog-Wandler realisieren. Auf dem Mega128 kann zusätzlich Timer_3 genutzt werden.
Timer0 (8 Bit)
Beispiel: Pulsweitenmodulation mit 138,9 µs Periode und 5,42 µs Pulsweite, geändert auf 10,84 µs Pulsweite
// Puls: 10*542,5 ns = 5,42 µs, Periode: 256*542,5 ns = 138,9 µs
Timer_T0PWM(10,PS0_8);
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