So geht das:
#ifndef F_CPU #define F_CPU 16000000UL // 16 MHz clock speed #endif int main(void){ DDRB |= (1 << PORTB1); //Define OCR1A as Output TCCR1A |= (1 << COM1A1) | (1 << WGM10); //Set Timer Register TCCR1B |= (1 << CS12) | (1 << CS10); OCR1A = 0; int timer = 0; int dummy = 0; while(1) { while(timer < 255){ //Fade from low to high timer++; OCR1A = timer; for (int i = 0; i < 10000; i++) if (TCNT1) dummy++;// nur für den Simmulator, damit er TCNT1 aktuallisiert } while(timer > 0){ //Fade from high to low timer--; OCR1A = timer; for (int i = 0; i < 10000; i++) if (TCNT1) dummy++;// nur für den Simmulator, damit er TCNT1 aktuallisiert } } }
PORTB:
DDRB:
PINB:
TCCR1:
TCNT1:
OCR1A: