Maticová klávesnice a 16FXXX

Mam program na čtení maticové klávesnice ale nic nedělá. A nevim proč :smiley: Pracuje tak že načte maticovou klavesnice a uloží do pomocného registru. A následně vypíše na Display. S vypisováním na display nemám problém tak tady dávám je část kde čtu klávesnici. Napadá někoho kde mam chybu??

nu do promněné klavesnice zapisuješ obsah W ale co v tom W maš vlastně ? přepínáš sice řádky (sloupce ?) a testuješ sepnutí klaves - potud správně neohrabané ale správné (rycleší bude ex-or celého portu ) ale to vyhodnocení nic nevyhodnocuje ! není co uložit z W a i kdybi bylo tak pořád stejný udaj ? to bude asi ta chyba !

No základní myšlenka je taková, že mam zaplé PULL-UP rezistory. Na řádek dám 0 a testuju jestly se mi ta 0 neobjevý na nějakém sloupci. Pokud ano tak celý protb uložim do té proměné klávesnice. Ta nic vyhodnocovat nemá, potom to akorát zobrazí na display. Ve formě třeba 255. Moc zatim programovat neumim tak zajakoukoli radu ci lepsi program budu velmi rad.

to jo ale ty tam máš jen movwf klavesnice ? a ne movfw portb a pak movwf klavesnice - v tom W které ukládaš při stisku nic není tedy je bsah nastavení portb při začátku testování ! obyčejně se to dělá tak že skenujěš jednotlivé klavesy a před každým skenem inkrementuješ patřičnou promněnou jakmile narazíš na platnou klavesu opuštíš celý blok a končíš - nebo musíš implementovat imoudul dvojstisku a atd

clrf klavesnice
bcf portb,7
incf klavesnice,1
btfss portb,0
return
incf klavesnice,1
btfss portb,1
return
.
.
.

atak dále samozřejmě ty moduly je zbatečné mít čtyřikrát udělj tam smycku a nech to čtyřikrát zacyklovat s jiným řádkem
kdy jsi trochu hledal zdroják na toto najdeš na internetu a hned několik
ale kdo si hraje nezlobí :slight_smile: