Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Real Racing 3 - Freemium csoda
- MasterDeeJay: Harc a DDR5 árak ellen
- Viber: ingyen telefonálás a mobilodon
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- djculture: Éhezők ssd és memória viadala.
- bambano: Bambanő háza tája
Új hozzászólás Aktív témák
-
Domonkos
addikt
Learning the DATAHAND SYSTEM Makes You a Winner!
A billentyuk allapotat beolvasni egyszeru:
static void
read_keyboard(void)
{
keys_down = 0;
for (uint8_t row = 0; row < N_ROWS; row++) {
const uint8_t b = read_row(row);
const uint64_t b64 = b;
const uint8_t offset = row * N_COLUMNS;
keys_down |= b64 << offset;
}
}Ennek a fuggvenynek a celja az az, hogy a
keys_downvaltozo erteket egy olyan allapotba hozza, ami a billentyuzet billentyuinek tenyleges allapotanak megfeleltetheto. A kesobb meghivott fuggvenyek ennek a valtozonak az erteke alapjan fognak mukodni.A billentyuk azok vagy lenyomva, vagy felengedve vannak - egyszerre a ket allapot egyikeben - szoval azok reprezentalasahoz egy-egy bit is elegendo.
Korabban kideritettuk, hogy a billentyuzet matrixa az 14x2-es mindket oldalon. - bar oldalankent csak 26 billentyuvel - Hogy ezt mind beolvassuk, vegig kell iteralnunk az osszes soron, es soronkent ket-ket billentyut (vagy 4-et, ha a ket felet egyszerre olvassuk) kell elraknunk a valtozoba.
Mivel egy sor beolvasasa onmagaban egy kulon lepesnek tekintheto, ezert azt kiszerveztem egy kulon fuggvenybe.
Szoval ha megelolegezzuk, hogy aread_row()fuggveny helyes erteket ad vissza, akkor nincs mas dolgunk, mint azt a billentyuzet poziciojanak megfelelo helyre "tolni" akeys_downvaltozoba.
A fenti kod pont ezt teszi.Magat a valtozot pedig definialhatjuk a megfelelo scope-ban mondjuk igy:
typedef uint64_t kb_state_t;
kb_state_t keys_down = 0;
#if ( N_KEYS > 64 )
#error "Too many keys on the keyboard"
#endifKenyelmes, mert nincs 64 billentyunel tobb billentyunk. Mondjuk kinek is kellhet annyi?

Új hozzászólás Aktív témák
- Precision 5490 14" FHD+ IPS Ultra 7 165H RTX 2000 Ada 32GB 1TB NVMe ujjlolv IR kam gar
- Eladó Gamer PC - i7-14700KF,32GB DDR5 RAM, 2TB SSD, ASUS RTX 4070S
- Stealth 14 AI Studio A1VFG 14" 2.8K OLED Ultra 7 155H RTX 4060 16GB 512GB NVMe magyar vbill gar
- PC bontás - 1STPLAYER RGB ház, be quiet 550w gold, Z790i Plus ITX + i9-13900H ES, 32Gb, RTX 3070
- Hibás Processzorok! 8-14gen, illetve ryzen
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Keresünk iPhone 15/15 Plus/15 Pro/15 Pro Max
- AKCIÓ! Apple MacBook Pro 16 M4 Pro 48GB RAM 4TB SSD macbook garanciával hibátlan működéssel
- Több darab! MacBook Pro 16" M1 32GB RAM 27%-os áfás számla
- új akku Ár/ÉRTÉK BAJNOK! Dell Latitude 5330 i3-1215U 6magos! - 16GB 256GB 13.3" FHD 1 év garancia
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


