+static void set_ref_voltage(void)
+{
+ DDRB |= (1 << DDB1); /* set PB0 as output */
+ TCCR0A = TCCR0B = 0;
+ TCCR0A |= (1 << WGM01) | (1 << WGM00) | (1 << COM0B1);
+ TCCR0B |= (1 << CS00); /* clk/1024 prescaler */
+ OCR0B = 0x20; /* 25% duty cycle */
+ TCNT0 = 0;
+ TIMSK = (1 << OCIE0B); /* enable interrupts for overflow and compare */
+}
+
+static void config_comparator(void)
+{
+ ADCSRA = 0;
+ ADCSRB |= (1 << ACME); /* multiplex enable */
+
+ //ADMUX |= (1 << MUX0); /* ADC1 as negative input */
+
+ ACSR &= ~(1 << ACD); /* enable comparator */
+ //ACSR |= (1 << ACBG);
+ //ACSR |= (1 << ACIS1) | (1 << ACIS0);
+
+ DIDR0 |= (1 << AIN1D) | (1 << AIN0D);
+
+ ACSR |= (1 << ACIE); /* enable interrupts */
+}
+