ATmega16 Timer0 Fast PWM
Dieses lauffähige Programm betreibt den Timer0 des ATmega32 im fast PWM mode.
Beschreibung
Am Ausgang PB3 wird ein ohne Timer Prescaler ein PWM Signal erzeugt. Das Register OCR0 (0..255) definiert den Tastgrad. Der Timer läuft im non inverting mode.
Somit wird, der Ausgang high, sobald der Zähler von 255 auf 0 springt und der Ausgang wird low, wenn der Coampare Match stattfindet und der Zähler gleich OCR0 ist.
|
Please visit: the four |
C Sourcecode
#include <avr/io.h>
int main(void)
{
DDRB = 0x08; // Setup PB3 as output
TCCR0 |= (1<<WGM00)|(1<<WGM01) // Start timer0 without
|(1<<COM01)|(1<<CS00); // prescaler in non
// inverting fast PWM
// mode. Connect OC0 in
// non-inverting mode
OCR0 = 64; // Set Dutycycle to 25%
for(;;); // Endless loop
// main() will never be left
return 0; // This line will never be executed
}
Download lauffähiges C-File mit ASCII-Schema: Downloadlink
Signalplot
Gelb: PB3 PWM Signal
|