#define F_CPU 8000000UL

#include <avr/io.h>
#include <util/delay.h>
#include "lcd_lib.h"

// Из `lcd_lib.c` скопировать все реализации функций и вставить после `main()`,
// потому что хз как подключать доп `.c` файлы в прогах, которые используем на лабах

int main(void) {
    LCDinit();
    
    uint8_t prev_state = 0;

    while (1) {
        // Обработка кнопок херня, но препод даже не смотрел `Hello World`,
        // так что можно всё убрать и оставить только вывод `Слава КПСС`
        // (но может и проверит у вас)
        uint8_t curr_state = PIND & 0x03;

        if ((curr_state & 0x01) && !(prev_state & 0x01)) {
            LCDclr();
            LCDGotoXY(0, 0);
            LCDstring((uint8_t*)"Hello", 5);
            LCDGotoXY(0, 1);
            LCDstring((uint8_t*)"World!", 6);
        }
        else if ((curr_state & 0x02) && !(prev_state & 0x02)) {
            LCDclr();
            LCDGotoXY(0, 0);
            // Дисплей не умеет напрямую получать кириллицу,
            // нужно выводить каждую букву используя их коды из даташита
            LCDstring((uint8_t*)"Слава", 5);
            LCDGotoXY(0, 1);
            LCDstring((uint8_t*)"КПСС!", 5);
        }

        prev_state = curr_state;
        _delay_ms(20);
    }
    
    return 0;
}
