Загрузка данных


    // 3. ANALIZA MATRYCY: Jeśli przeskanowaliśmy wszystkie 4 wiersze
    if (keyboard_counter >= 4) 
    {
        unsigned char active_r = 0xFF; // 0xFF oznacza brak wciśniętego klawisza
        unsigned char active_c = 0xFF;
        char r;
        
        keyboard_counter = 0; // Reset licznika dla następnego cyklu
        
        // Szukamy PIERWSZEGO wciśniętego klawisza (priorytet od Rzędu 0, Kolumny 0)
        for (r = 0; r < 4; r++) {
            if ((matrix_state[r] & 0x01) == 0) { active_r = r; active_c = 0; break; } // Znaleziono? Przerwij pętlę!
            if ((matrix_state[r] & 0x02) == 0) { active_r = r; active_c = 1; break; }
            if ((matrix_state[r] & 0x04) == 0) { active_r = r; active_c = 2; break; }
            if ((matrix_state[r] & 0x08) == 0) { active_r = r; active_c = 3; break; }
        }
        
        // 4. WYNIK: Jeśli jakikolwiek klawisz jest wciśnięty, wyświetl go
        if (active_r != 0xFF) {
            // Wyświetla pierwszy znaleziony klawisz
            led_display[0] = key_codes[active_r][active_c];
        } 
        
        // Brak bloku "else" oznacza, że po puszczeniu wszystkich klawiszy
        // ekran nadal będzie pokazywał ostatnio wciśnięty znak (Zadanie 2).
    }