#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>
static void setup_pwm(void) {
PLLCSR |= (1 << PCKE);
_delay_us(100);
DDRB |= (1 << PB1);
OCR1C = 0xff;
TCCR1 |= (1 << PWM1A) | (1 << COM1A1) | (1 << CS10);
TIMSK |= (1 << TOIE1);
}
ISR(TIM1_OVF_vect) {
++OCR1A;
}
int main(void) {
setup_pwm();
sei()
for (;;) {
sleep_mode();
}
return 0;
}
I2luY2x1ZGUgPGF2ci9pby5oPgojaW5jbHVkZSA8YXZyL2ludGVycnVwdC5oPgojaW5jbHVkZSA8YXZyL3NsZWVwLmg+CiNpbmNsdWRlIDx1dGlsL2RlbGF5Lmg+CgoKc3RhdGljIHZvaWQgc2V0dXBfcHdtKHZvaWQpIHsKICBQTExDU1IgfD0gKDEgPDwgUENLRSk7CiAgX2RlbGF5X3VzKDEwMCk7CiAgRERSQiB8PSAoMSA8PCBQQjEpOwogIE9DUjFDID0gMHhmZjsKICBUQ0NSMSB8PSAoMSA8PCBQV00xQSkgfCAoMSA8PCBDT00xQTEpIHwgKDEgPDwgQ1MxMCk7CiAgVElNU0sgfD0gKDEgPDwgVE9JRTEpOwp9CgpJU1IoVElNMV9PVkZfdmVjdCkgewogICsrT0NSMUE7Cn0KCmludCBtYWluKHZvaWQpIHsKICBzZXR1cF9wd20oKTsKICBzZWkoKQogIGZvciAoOzspIHsKICAgIHNsZWVwX21vZGUoKTsKICB9CiByZXR1cm4gMDsKfQo=