unsigned char read_keypad(void) {  // Ez a beolvasófüggvény fog gondoskodni a tasztatúra kezeléséről.
_delay_ms(1000);
send_string("20\n");
	DDRD  = 0b10000000;		//Szabad láb kimenet, gombok bemenet
	PORTD = 0b01110000;		//Szabad láb nulla,   gombok pull-up->(pull-up=+5V) (kimenet és nulla=elnyel)
	_delay_us(100);     // Megvárjuk, míg a portváltások aktualizálódnak
send_string("21\n");
	if (~b_pin & (1<<b_row2)) {   // Ha az elnyelő lehúzza a pull-upot 0V-ra, akkor tudjuk, h gombnyomás volt
		send_string("1\n");;
	}
    if (~b_pin & (1<<b_row3)) {
		send_string("2\n");
  	}
  	if (b_pin & (1<<b_row4)) {
		send_string("3\n");
	}
send_string("22\n");
	DDRD = 0b00000000;   // Visszaállítunk minden portot
	_delay_us(100);     // Ismét várakozunk

	DDRD  = 0b01000000;   // Innentől ugyanaz a logika, csak más lábakon
	PORTD = 0b10110000;
	_delay_us(100);
send_string("23\n");
	if (~b_pin & (1<<b_row1)) {
		send_string("4\n");
	}
	if (~b_pin & (1<<b_row3)) {
		send_string("5\n");
	}
	if (~b_pin & (1<<b_row4)) {
		send_string("6\n");
	}
send_string("24\n");
	DDRD = 0b00000000;   // Visszaállítunk minden portot
	_delay_us(100);
	
	DDRD  = 0b00100000;
	PORTD = 0b11010000;


	_delay_us(100);
send_string("25\n");
	if (~b_pin & (1<<b_row1)) {
		send_string("7\n");
	}
	if (~b_pin & (1<<b_row2)) {
		send_string("8\n");
	}
	if (~b_pin & (1<<b_row4)) {
		send_string("9\n");
	}
send_string("26\n");
	DDRD = 0b00000000;   // Visszaállítunk minden portot
	_delay_us(100);      

	DDRD = 0b00010000;
	PORTD = 0b11100000;
	_delay_us(100);

send_string("27\n");
	if (~b_pin & (1<<b_row1)) {
		send_string("10\n");
	}
	if (~b_pin & (1<<b_row2)) {
		send_string("11\n");
	}
	if (~b_pin & (1<<b_row3)) {
		send_string("12\n");
	}
send_string("28\n");
	DDRD = 0b00000000;   // Visszaállítunk minden portot
	_delay_us(100);

send_string("29\n");

	
}
/*
Send_string ezeket küldi:
20
21
22
23
5
24
25
8
26
27
10
28
29
*/