#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);
bool firstState = true, firstState2 = true, firstState3 = true;
int minuty, sekundy, page;
int long currentTime;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
DDRB &= ~(0b111<<0);
PORTB |= 0b111<<0;
lcd.print("0:0");
lcd.setCursor(0,1);
lcd.print("Minuty ");
lcd.home();
}
void loop() {
if(millis() >= currentTime){
sekundy--;
if(sekundy <= 0){
sekundy = 0;
minuty--;
}
if(minuty <= 0) minuty = 0;
if(minuty > 0 && sekundy == 0) sekundy = 59;
lcd.home();
lcd.print(String(minuty)+":"+String(sekundy)+" ");
currentTime += 1000;
}
if( (PINB&(0b1<<2)) == 0 && firstState3 == true){
firstState3 = false;
page = !page;
if(page == 0){
lcd.setCursor(0,1);
lcd.print("Minuty ");
}
else{
lcd.setCursor(0,1);
lcd.print("Sekundy");
}
}
if( (PINB&(0b1<<0)) == 0 && firstState == true){
firstState = false;
lcd.setCursor(0,0);
lcd.print(" ");
lcd.home();
if(page == 0){
lcd.home();
minuty++;
if(minuty > 59) minuty = 0;
lcd.print(String(minuty)+":"+String(sekundy));
}
else{
lcd.home();
sekundy++;
if(sekundy > 59){
sekundy = 0;
minuty++;
}
lcd.print(String(minuty)+":"+String(sekundy));
}
}
if( (PINB&(0b1<<1)) == 0 && firstState2 == true){
lcd.setCursor(0,0);
lcd.print(" ");
lcd.home();
firstState2 = false;
if(page == 0){
lcd.home();
minuty--;
if(minuty < 0) minuty = 0;
lcd.print(String(minuty)+":"+String(sekundy));
}
else{
lcd.home();
sekundy--;
if(sekundy < 0) sekundy = 0;
lcd.print(String(minuty)+":"+String(sekundy));
}
}
if( (PINB&(0b1<<2)) != 0 && firstState3 != true)
firstState3 = true;
if( (PINB&(0b1<<0)) != 0 && firstState != true)
firstState = true;
if( (PINB&(0b1<<1)) != 0 && firstState2 != true)
firstState2 = true;
}