// processor speed #define F_CPU 16000000 // 16MHz #include <avr/io.h> int main(void) { // timer0 register: TCCR0A, TCCR0B // timer0 compare register: 0CR0A, 0CR0B // set waveform generation mode // WGM00 - WGM02 TCCR0A |= (1 << WGM00) | (1 << WGM01); // fast pwm // set prescaler // CS00 - CS02 TCCR0B |= (1 << CS00) | (1 << CS01); // clock/64 -> F_CPU / 64 = 250kHz PWM // OC0A // pin 7 @ arduino DDRD |= (1 << DDD6); TCCR0A |= (1 << COM0A1); // clear on compare match OCR0A = 20; // 8-bit, 0 to 255 while(1) { // ... } }
Nützliche Links:
PWM Signal Generation by Using AVR Timers
ATmega Timer/Counter/Prescaler Calculator


