#define SET0(REG,BIT) REG &= ~(1<<BIT)
#define SET1(REG,BIT) REG |= (1<<BIT)
#define TEST(REG,BIT) (REG&(1<<BIT))
#include <LiquidCrystal.h>
LiquidCrystal disp(8,9,10,11,12,13);
int vysledok;
void setup() {
SET0(ADMUX,REFS1); // voľba Aref
SET0(ADMUX,REFS0);
SET0(ADMUX,ADLAR); // nastavenie ci sa nacitava najskor high alebo low
SET0(ADMUX,MUX0); // nastavenie z ktoreho portu
SET0(ADMUX,MUX1);
SET0(ADMUX,MUX2);
SET0(ADMUX,MUX3);
SET1(ADCSRA,ADEN); // zapnutie ADC
SET0(ADCSRA,ADATE); // spúšťanie príkazom
SET0(ADCSRA,ADIE); // negenerovanie prerušenia
SET1(ADCSRA,ADPS2); // voľba preddeličky 128 (frek. procesuru je 16MGhz a adc potreubuje okolo 200kHz)
SET1(ADCSRA,ADPS1); //volba predelicky
SET1(ADCSRA,ADPS0); //volba predelicky
disp.begin(16,2);
disp.print("dad");
}
void loop() {
SET1(ADCSRA,ADSC); // začatie konverzie
while(TEST(ADCSRA,ADIF)==0); // testovanie dokončenia
vysledok = ADCL; // načítanie dolného registra
vysledok = vysledok | (ADCH<<8); // pripočítanie horného
disp.clear();
disp.print(vysledok);
delay(10);
}