Stránka 1 z 1

C# čtení z maticové klávesnice

Napsal: 17 pro 2014 23:23
od Benny53
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

Napsal: 18 pro 2014 05:49
od faraon
ATmega a C#? To je pěkně hnusná kombinace :evil:

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.

Re: C# čtení z maticové klávesnice

Napsal: 18 pro 2014 09:23
od Benny53
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.