#include <LiquidCrystal_I2C.h>
#define SET0(REG,BIT) REG &= ~(1<<BIT)
#define SET1(REG,BIT) REG |= (1<<BIT)
#define TEST(REG,BIT) (REG&(1<<BIT))

void setup() {
LiquidCrystal_I2C lcd(0x27, 16, 2);

lcd.init();
lcd.backlight();



SET0(DDRC,0);
SET0(ADMUX,REFS1); //ref na aref
SET0(ADMUX,REFS0);
SET0(ADMUX,ADLAR); //zarovna nalavo
SET0(ADMUX,MUX3); //nozivka na A0 cize ADC0
SET0(ADMUX,MUX2);
SET0(ADMUX,MUX1);
SET0(ADMUX,MUX0);
SET1(ADCSRA,ADEN); //zapne prevodnik
SET0(ADCSRA,ADATE); //zapnem cez ADSC bit
SET0(ADCSRA,ADIE); //zachytavam prerusenie(IRS)
SET1(SREG,7)
SET1(ADCSRA,ADPS1); // predelicka 128 cize to bude v range 50-200K
SET1(ADCSRA,ADPS2);
SET1(ADCSRA,ADPS0);

SET1(ADCSRA,ADSC);//zapnutie prevodu

}

void loop() {


}

IRS(ADC_vect)
{

}
//Odsimulujte zapojenie, v ktorom využijete servo-motor, 
//Serial/UART a posuvný potenciometer. Prepojte PWM pin s INT0 pinom. 
//Nastavte na PWM pine strednú hodnotu, takže k obsluhe ISR vonkajšieho prerušenia 
//INT0 bude dochádzať cca 977 krát za sekundu. V ISR vonkajšieho prerušenia spúšťajte 
//prevod ADC. Naprogramujte ADC pomocou registrov tak, aby generoval prerušenie. V prerušení 
//nastavte servo motor tak, aby odpovedalo jeho natočenie od 0° do 180° posunutiu potenciometra od min. po max. 
//Táto hodnota sa zároveň vypíše cez Serial do konzoly. V LOOP funkcii teda nebude žiaden kód.