#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 lcd(13, 12, 11, 10, 9, 8);
void setup()
{
lcd.begin(16, 2);
SET0(DDRD, 3);
SET1(PORTD, 3);
SET0(DDRD, 2);
SET1(PORTD, 2);
SREG |= 1<<7;
EIMSK |= 1<<INT0;
EIMSK |= 1<<INT1;
EICRA = 0b00001010;
SET0(DDRC, 0);
SET0(ADMUX, REFS1);
SET0(ADMUX, REFS0);
SET0(ADMUX, ADLAR);
SET0(ADMUX, MUX3);
SET0(ADMUX, MUX2);
SET0(ADMUX, MUX1);
SET0(ADMUX, MUX0);
SET1(ADCSRA, ADEN); // zapne sa prevodnik
SET0(ADCSRA, ADATE);
SET0(ADCSRA, ADIE);
SET1(ADCSRA, ADPS2);
SET1(ADCSRA, ADPS1);
SET1(ADCSRA, ADPS0);
SET0(DDRC, 1);
}
void loop()
{
}
ISR(INT0_vect)
{
lcd.setCursor(0,1);
lcd.println("P:");
}
ISR(INT1_vect)
{
SET1(ADCSRA, ADSC);
while(TEST(ADCSRA, ADIF) == 0)
{
}
int vysledok = ADCL;
vysledok = vysledok + (ADCH<<8);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("L:");
lcd.setCursor(2,0);
lcd.print(vysledok);
}