Mam pytanie.
Klawiatura szesnastkowa do systemów uP AVT-2503 opracowana jest na dwóch ośmiobitowych portach PCF8574 i2c. Klawiatura ma szesnaście klawiszy.
Zastanawiam się dlaczego na dwóch PCF-ach??? Przecież można zrobić matrycę klawiatury 4x4 na jednym PCF-ie, prawda? A może się nie da? Może jest coś, o czym powinienem wiedzieć???
Czy ktoś mógłby podesłać procedurkę odczytu matrycy klawiatury 4x4 dla
Bascom, zrealizowanej na PCF8574?
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięMatryca klawiatury na PCF-ach 8574 (AVT-2503)
Moderatorzy: Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
-
- Moderator
- Posty: 965
- Rejestracja: 13 maja 2003, o 10:33
- Lokalizacja: Sosnowiec
- Kontaktowanie:
Wydaję mi się, ze gdybyś zastosował jednego PCF-a (klawiatura matrycowa) to cały czas procesor zajmowałby się sprawdzaniem, czy jakiś klawisz nie został naciśnięty. Nie miałby czasu na nic innego (tym bardziej, że I2C jest stowunkowo wolna). Gdy klawiatura pracuje w układzie jak w AVT2503 (dwa PCF-y), to procesor nie musi sprawdzać czy klawisz zostanie naciśnięty, gdyż po naciśnięciu przycisku zostaje zgłoszone przerwanie.
Uzycie dwóch PCF prawdopodobnie było spowodowane tym że nie była tam matryca 4x4 ale odczyt klawiatury następował w przerwaniu.
Jest to bardzo wygodne poniważ PCF ma wyjście ktore generuje przerwanie po zmianie sygnału na wejsciu i procesor przełacz się tylko na moment dla odczytu i wraca do swoich zadań.
Poniżej jest procedurka która czytała u mnie cztery zadajniki BCD, z 1 PCF ale była wykonywana w sciśle określonym czasie i później z niej nie korzystalem.
'odczyt klawiatury z i2c[/code]
Jest to bardzo wygodne poniważ PCF ma wyjście ktore generuje przerwanie po zmianie sygnału na wejsciu i procesor przełacz się tylko na moment dla odczytu i wraca do swoich zadań.
Poniżej jest procedurka która czytała u mnie cztery zadajniki BCD, z 1 PCF ale była wykonywana w sciśle określonym czasie i później z niej nie korzystalem.
'odczyt klawiatury z i2c
Kod: Zaznacz cały
I2csend 64 , &B11101111
I2creceive 65 , Key 'odczyt np: 11101101
Key = Not Key 'neguje na: 00010010
Key = Key - 16 ' odejmuje 00010000 i powstaje 00000010 =2
Temp = Key * 1000
L = Temp
I2csend 64 , &B11011111
I2creceive 65 , Key
Key = Not Key
Key = Key - 32
Temp = Key * 100
L = L + Temp
I2csend 64 , &B10111111
I2creceive 65 , Key
Key = Not Key
Key = Key - 64
Temp = Key * 10
L = L + Temp
I2csend 64 , &B01111111
I2creceive 65 , Key
Key = Not Key
Key = Key - 128
L = L + Key
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 27 gości