[avr-gcc] Skanowanie klawiatury - jednak nie dziala

Loading thread data ...

Saper/nolin11 napisał(a):

A cóż to za dziwadła czy nowa moda? Nie dało się normalnie zapisać dostępu do tego rejestru DDR i portu?

Jeżeli chodzi o skanowanie klawiatury - dodaj odstęp pomiędzy wysterowaniem wiersza a odczytem kolumny. Przy okazji możesz nieco uprościć i rozjaśnić kod używając pętli zamiast wielokrotnie konstrukcji podobnych do siebie. Dziwne też, że masz zdefiniowane maski wierszy (np. SW_ROW1) a nie masz masek kolumn (sprawdzasz wartości 0x80, 0x40 itp). Jeżeli chcesz zamienić numery wiersza i kolumny na kod klawisza (w innej kolejności niż skanowane wiersze i kolumny) to najszybsze jest użycie tablicy.

Odnośnie schematu: brakuje diod przy klawiaturze. Naciśnięcie jednoczesne 2 klawiszy w tej samej kolumnie spowoduje zwarcie 2 rzędów (w pewnej chwili na jednym wystawisz jedynkę a na drugim zero) i popłynie niezły prąd. Możesz w takiej sytuacji włączać pull-up na pinie zamiast wystawiać mocną jedynkę.

BTW: Dziwny masz pinout ISP. Jeżeli 6 pinów w rzędzie (zamiast atmelowego 2x5) to ten jest bardziej standardowy:

formatting link

Reply to
Adam Dybkowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.