Hatte gerade etwas Langeweile. Habe aber den Prescaler nicht und eine interne Referenzspannung scheint es beim tiny10 nicht zu geben.
Habe es auch nicht getestet oder sonstige Änderungen vorgenommen, nur 1:1 in C.

Code:
/*
 *
 */ 
#include <avr/io.h>
#include <util/delay.h>




void Init(void);
uint8_t Read_Adc(uint8_t channel);
void TimerOn(void);
void TimerOff(void);




int main(void) {
	uint8_t ret = 0;
	
	Init();
	
	while(1) {
		ret = Read_Adc(3);
		
		if(ret > 120 && ret < 250) {
			TimerOn();
		} else {
			TimerOff();
			_delay_ms(1000);
			
			TimerOn();
		}
		_delay_ms(1000);
	}
	
	return 0;
}




void Init(void) {
	// PB1 out
	DDRB |= (1<<PB3);
	
	// Enable ADC
	ADCSRA |= (1<<ADEN);
	
	// Prescaler ?
	ADCSRA |= (1<<) | (1<<);
	
	// no internal ref on tiny10
}


uint8_t Read_Adc(uint8_t channel) {
	ADMUX = (ADMUX & ~(0x1F)) | (channel & 0x1F);
	ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
	while(ADCSRA & (1<<ADSC));    // auf Abschluss der Konvertierung warten
	
	return ADCL;
}


void TimerOn(void) {
	TCCR0A = 0x42;
	
	TCCR0B = 0x09;
	
	OCR0A = 0x40;
}


void TimerOff(void) {
	TCCR0A = 0x02;
}
mfg