#ifndef F_CPU
#define F_CPU 16000000UL
#endif

#include <avr/io.h>
#include <util/delay.h>

static uint16_t adc_read(uint8_t ch){
  ADMUX=(1<<REFS0)|(ch&0x0F);
  ADCSRA=(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
  ADCSRA|=(1<<ADSC); while(ADCSRA&(1<<ADSC));
  return ADC;
}
static void beep(uint16_t ms){
  uint16_t cycles = ms*10/2;             // ~2.7кГц: полупериод ~185мкс
  while(cycles--){ PORTD^=(1<<PD6); _delay_us(185); }
}
int main(void){
  DDRD|=(1<<PD6);                        // бузер на PD6
  const uint16_t TH=600;
  for(;;){
    if(adc_read(0)<TH){ beep(100); _delay_ms(120); }
    else _delay_ms(100);
  }
}
