#include <LiquidCrystal_I2C.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <MsTimer2.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Globals
uint8_t flag = 1;
static unsigned long last_interrupt_time = 0;
/*
class LCD{
public:
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2);
LCD () {
lcd.init();
lcd.backlight();
}
};
*/
class coff{
public:
void sui(){
switch (flag){
case 1:
flag++;
break;
}
}
};
ISR(INTO_vect){
if (millis() - last_interrupt_time > 200)
{
flag++;
}
last_interrupt_time = millis() ;
}
int main (void){
lcd.init();
lcd.clear();
lcd.backlight();
coff m;
// Rising edge of INTO generates interrupt
EICRA |= (1 << ISC01);
EICRA &= ~(1 << ISC00);
// Enable interrupts for INT0
EIMSK |= (1 <<INT0);
// Enable global interrupts
sei();
while(true){
m.sui();
}
}