#include <Servo.h>
#define SET0(REG,BIT) REG &= ~(1<<BIT)
#define SET1(REG,BIT) REG |= (1<<BIT)
int vysledok;
Servo servo;
void setup() {
// put your setup code here, to run once: an analog write
analogWrite(9, 128);
Serial.begin(9600);
servo.attach(9);
SET0(ADMUX,REFS1); // voľba Aref
SET0(ADMUX,REFS0);
SET0(ADMUX,ADLAR); // zarovnanie nadol
SET0(ADMUX,MUX0); // ADC0 A0
SET1(ADCSRA,ADEN); // zapnutie ADC
SET1(ADCSRA,ADATE); // spúšťanie automaticky
SET1(ADCSRA,ADIE); // generovanie prerušenia
SET1(SREG,7); //istič
SET1(ADCSRA,ADPS2); // voľba preddeličky 128
SET1(ADCSRA,ADPS1);
SET1(ADCSRA,ADPS0);
// SET1(ADCSRA,ADSC); // začatie konverzie
}
void loop() {
// put your main code here, to run repeatedly:
}
ISR(PCINT0_vect) {
SET1(ADCSRA,ADSC); // začatie konverzie
}
ISR(ADC_vect) {
vysledok = ADCL;
vysledok = vysledok | (ADCH<<8);
Serial.println(vysledok);
servo.write(map(vysledok,0, 1023, 0, 180));
}