void PWM_init (void)
{
PRR &= ~(1<< PRTIM2);
TIMSK2 = 0; // прерывания запрещены
TCCR2A = (1<< COM2B0) | (1<< WGM21); // CTC режим
TCCR2B = (1<< CS20) | (1<< CS21) | (1<< CS22); // прескаллер 1024
OCR2B = 8; // 500 Герц
}
int main( void )
{
DDRD = 0xFF;
PORTD &= ~(1<< 2);
PWM_init();
for (;;)
{
PORTD &= ~(1<< 2);
__delay_cycles(500000);
PORTD |= (1<< 2);
__delay_cycles(500000);
}
}