+ while (1) {
+ uint16_t pwm;
+ unsigned char pwmhi, pwmlo;
+
+ ADCSRA |= _BV(ADSC);
+
+ _delay_ms(100);
+
+ pwm = ADCW;
+ if (!seen) {
+ seen = 1;
+ eeprom_write_word(&pwmee, pwm);
+ }
+ if (pwm > 0x3C0)
+ pwm = 0x3C0;
+ if (pwm < 1)
+ pwm = 1;
+ pwmhi = pwm >> 8;
+ pwmlo = pwm & 0xFF;
+
+ TC1H = pwmhi;
+ OCR1D = pwmlo;
+ }