+ sei();
+ while (1) {
+ unsigned char pwmhi, pwmlo;
+
+ if (intflags.adc_int) {
+ intflags.adc_int = 0;
+
+ if (adcval > 0x3C0)
+ adcval = 0x3C0;
+ if (adcval < 1)
+ adcval = 1;
+ pwmhi = adcval >> 8;
+ pwmlo = adcval & 0xFF;
+
+ TC1H = pwmhi;
+ OCR1D = pwmlo;
+
+ TC1H = pwmhi;
+ OCR1B = pwmlo;
+
+ TC1H = pwmhi;
+ OCR1A = pwmlo;
+
+ TIMSK |= _BV(TOIE1);
+ }
+
+ if (intflags.tmr_int) {
+ intflags.tmr_int = 0;
+ ADCSRA |= _BV(ADIE) | _BV(ADSC);
+ }
+
+ sleep_mode();
+
+#if 0
+ if (!seen) {
+ seen = 1;
+ eeprom_write_byte(&debug, 2);
+ }
+#endif
+ }