Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- MasterDeeJay: Harc a DDR5 árak ellen
- Geri Bátyó: Agglegénykonyha 10 – Alapanyagok/készételek többféle felhasználása
- djculture: Éhezők ssd és memória viadala.
- Real Racing 3 - Freemium csoda
Ú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
- Spórolós topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Automata kávégépek
- Milyen NAS-t vegyek?
- Epic Games
- Elektromos cigaretta 🔞
- Hardcore café
- Steam, GOG, Epic Store, Humble Store, Xbox PC Game Pass, Origin Access, uPlay+, Apple Arcade felhasználók barátságos izgulós topikja
- Milyen TV-t vegyek?
- Hobby elektronika
- További aktív témák...
- LENOVO ThinkPad T470,14",FHD,i7-7500U,16GB DDR4,512GB SSD,WIN11
- Latitude 5530 27% 15.6" FHD IPS i5-1245U 16GB 512GB NVMe magyar vbill ujjolv gar
- Új Gamer PC RTX 5060 Ti 16GB i5-14400F 32GB DDR5 Garanciás
- Precision 7670 27% 16" FHD+ IPS i7-12850HX RTX A3000 32GB 2TB NVMe ujjlolv IR kam gar
- HP Pavilion 14 - i5 10. Gen Laptop + MX130 2GB GPU!
- BESZÁMÍTÁS! ASUS B150M i5 6402P 8GB DDR4 500GB SSD GTX 1050 Ti 4GB Rampage SHIVA DeepCool 400W
- LG 32GQ850-B - 32" NANO IPS ATW / 2560x1440 / 260Hz 1ms / NVIDIA G-Sync / AMD FreeSync / HDR 600
- 159 - Lenovo LOQ (15APH8) - AMD Ryzen 7 7840HS, RTX 4060 (ELKELT)
- GYÖNYÖRŰ iPhone 12 64GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3858
- Apple iPhone 15 ProMax 256GB Kártyafüggetlen 1év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


