Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 29 mar 2024, o 06:22


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 20 lut 2023, o 13:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 mar 2014
Posty: 196
Lokalizacja: Kielce
Pomógł: 3

Cześć,

mam takie zadanie do zrealizowania: Odczytanie stanu przycisków z klawiatury matrycowej.

Problem jaki mam to, że do każdego przycisku w szeregu jest dołączona dioda prostownicza. Dodaje zdjęcie dla uproszczenia z jednym przyciskiem.

Obrazek

Po przeanalizowaniu schematu uznałem, żeby odczytać stan klawisza należy PC0 ustawić jako wyjście z podciągnięciem pod VCC i monitorować stan PB0. PB0 ustawiłem jako wejście. W momencie naciśnięcia S1 pojawia się stan wysoki na PB0.
Problem jest taki, że jeśli ustawię PIN PB0 jako wejście to panuje na nim jakiś dziwny stan. Jest tam coś około 1V więc jeśli zrobię warunek sprawdzenia stanu wysokiego to bez wciśnięcia procesor odczytuje, że jest wciśnięty klawisz. Nie za bardzo wiem jako to ogarnąć :o

Poniżej mój kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



plik nagłówkowy .h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


key.c


Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2023, o 16:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 313
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

Jeżeli chodzi o jeden przycisk, to ja bym to zrobił tak:
Pin PB0 ustawiłbym jako wyjście w stanie niskim.
Pin PC0 ustawiłbym jako wejście z podciągnięciem do VCC.
Wtedy nie będziesz miał dziwnego stanu 1V czyli HI-Z (tzw. stan nieokreślony).
Cała ta moja uwaga dotyczy tylko jednego przycisku a jak ty masz klawiaturę matrycową, to wtedy realizuje się to w całkiem inny sposób.


Autor postu otrzymał pochwałę

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lut 2023, o 21:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1960
Lokalizacja: Lipsko
Pomógł: 125

Przy całościowym podłączeniu było by to lepiej widać, a tak to można pogdybać. Pomysł kolegi @mario2015 jak najbardziej do zrealizowania, a można też po prostu ściągnąć do masy każdy port w stanie hi-z rezystorem, np. 4.7k-10k

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2023, o 10:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 mar 2014
Posty: 196
Lokalizacja: Kielce
Pomógł: 3

O właśnie o to mi chodziło, czemu ja na to nie wpadłem :D :lol: :lol:

Dziękuje bardzo za pomoc ;)

_________________
BlueBook



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lut 2023, o 17:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 06 mar 2015
Posty: 313
Lokalizacja: Czerwionka-Leszczyny
Pomógł: 22

Rafal9018 napisał(a):
O właśnie o to mi chodziło, czemu ja na to nie wpadłem :D :lol: :lol:

Dziękuje bardzo za pomoc ;)


Ale o co ci chodziło, bo nie piszesz?

_________________
http://www.avrboss.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO