ATmega16 Timer 1 Fast PWM
In diesem C Code Beispiel erzeugt der Timer 1 im Fast PWM Mode ein hochfrequentes PWM Signal
Beschreibung Der Timer 1 wird in den 8 bit Fast PWM Modus gesetzt. Beide ausgänge OC1A und OC1B springen auf low, wenn der Timer von 255 auf 0 zurückspringt. OC1A wird auf high gesetzt, wenn der Timer 63 erreicht (entspricht 25%). Der Ausgang OC1B hat mit einem Wert von 127 einen Tastgrad von 50%. |
Please visit: the four |
C Sourcecode
#include <avr/io.h>
int main(void)
{
DDRD = 0x30; // Set Port D4 and d5 as Output
TCCR1A = (1<<WGM10)|(1<<COM1A1) // Set up the two Control registers of Timer1.
|(1<<COM1B1); // Wave Form Generation is Fast PWM 8 Bit,
TCCR1B = (1<<WGM12)|(1<<CS12) // OC1A and OC1B are cleared on compare match
|(1<<CS10); // and set at BOTTOM. Clock Prescaler is 1024.
OCR1A = 63; // Dutycycle of OC1A = 25%
OCR1B = 127; // Dutycycle of OC1B = 50%
for(;;); // Endless loop;
// main() will never be left
return 0; // This line will never be executed
}
Download C-Sourcefile mit ASCII-Schema: C-Sourcefile mit ACII-Schema
Signalplots
Gelb: Digitales Ausgangssignal PD5 (OC1A)
|