C# čtení z maticové klávesnice
C# čtení z maticové klávesnice
Potřeboval bych poradit, jak v C# přečíst maticovou klávesnici 8x8...Mám to připojeno na COM6, na PortechA,B mam write,read..ale nevím, jak zjistím, že mačkám tlačítka...aspoň neco jednoduchého, co mi zobrazí, že jsem nejakou klávesu stisknul...Děkuji za rady (mám to připojené přes ATmegu)
Re: C# čtení z maticové klávesnice
ATmega a C#? To je pěkně hnusná kombinace
Takže máš v matici osm sloupců po osmi řádcích. Budu předpokládat že port A je výstupní, a port B vstupní, na A jsou připojené sloupce a na B řádky. Jestli je to jinak na věci nic nemění, princip je vždy stejný, jen si to přeházíš podle toho jak to máš připojené.
Čtení bude probíhat tak, že do jednotlivých sloupců posíláš jedničku, tedy že na výstupní port A zapisuješ postupně čísla 1, 2, 4, 8... Prostě mocniny dvojky, což se dá provést jednoduchým posunem vlevo nebo vpravo, podle toho co se ti líbí víc.
A po každém tom zápisu se podíváš jestli se na portu B neobjevila nějaká hodnota. Podle toho na kterém řádku je stisknuté tlačítko, tak na tom bitu bude jednička. Není-li stisknuté žádné ve vybraném řádku, bude na portu B nula.
A to jestli je vůbec nějaké stisknuté zjistíš úplně jednoduše, pošleš tu jedničku do všech sloupců najednou, tím že do portu A zapíšeš číslo 255 (asi víš jak vypadá ve dvojkové soustavě), a když na portu B bude cokoliv jiného než nula, víš že je něco stisknuté. Co, to potom zjistíš předchozím způsobem.

Takže máš v matici osm sloupců po osmi řádcích. Budu předpokládat že port A je výstupní, a port B vstupní, na A jsou připojené sloupce a na B řádky. Jestli je to jinak na věci nic nemění, princip je vždy stejný, jen si to přeházíš podle toho jak to máš připojené.
Čtení bude probíhat tak, že do jednotlivých sloupců posíláš jedničku, tedy že na výstupní port A zapisuješ postupně čísla 1, 2, 4, 8... Prostě mocniny dvojky, což se dá provést jednoduchým posunem vlevo nebo vpravo, podle toho co se ti líbí víc.
A po každém tom zápisu se podíváš jestli se na portu B neobjevila nějaká hodnota. Podle toho na kterém řádku je stisknuté tlačítko, tak na tom bitu bude jednička. Není-li stisknuté žádné ve vybraném řádku, bude na portu B nula.
A to jestli je vůbec nějaké stisknuté zjistíš úplně jednoduše, pošleš tu jedničku do všech sloupců najednou, tím že do portu A zapíšeš číslo 255 (asi víš jak vypadá ve dvojkové soustavě), a když na portu B bude cokoliv jiného než nula, víš že je něco stisknuté. Co, to potom zjistíš předchozím způsobem.
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: C# čtení z maticové klávesnice
Takto teoreticky to chápu :) spíš mě zajímá konkrétní část kódu v c#. V Atmel studiu v C jsem to nejak vyplodil, ale chtěl bych to udělat v c#, protože další plán je jistá okenní aplikace a další zpracování dat..blabla, není důležité... prostě jak vypadá kód v c#, kterým budu ty hodnoty posílat/získávat.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 4
- 1850
-
od Kminek
Zobrazit poslední příspěvek
09 pro 2024 14:17
-
- 1
- 1888
-
od Alferi
Zobrazit poslední příspěvek
12 čer 2025 08:55
-
- 1
- 1796
-
od Zakk
Zobrazit poslední příspěvek
09 črc 2024 19:29
-
- 8
- 2127
-
od HelFix
Zobrazit poslední příspěvek
06 pro 2024 10:23
-
- 2
- 1529
-
od zik9
Zobrazit poslední příspěvek
07 čer 2025 12:38
Zpět na “Programování a tvorba webu”
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů