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



Teraz jest 25 sty 2025, o 23:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 17 ] 
Autor Wiadomość
PostNapisane: 27 cze 2014, o 15:01 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

Witam,
czy jest jakaś komenda która rozpoznaje która nóżka zwarta jest z którą ? Potrzebne mi jest to do klawiatury membranowej, która działa na zasadzie krzyżowania linii (posiada 4 linie pionowe i 4 poziome i np. skrzyżowanie pierwszej linii pionowej z pierwszą poziomą to przycisk 1). W klawiaturze tej nie ma gdzie doprowadzić stanów wysokich. Jak można ją obsłużyć ? Czy są jakieś specjalne komendy ?
Pozdrawiam

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 15:17 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Cóż, w tym wątku topic814.html Kolega SunRiver opisał obsługę takiej klawiatury. Ale proponowałbym Ci zacząć naukę języka C od tej książki:

BlueBook


Nie ma czegoś takiego jak jedna komenda która robi jedną jakąś czynność. Trzeba sobie napisać program, zbiór pewnych wyrażeń i "komend" które po kompilacji i wgraniu do procesora dadzą efekt w postaci np. migania diodą.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 15:24 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Poszukaj w sieci hasło "klawiatura matrycowa". Obsługa jej z grubsza polega na cyklicznym podawaniu stanu niskiego na kolejne wiersze i sprawdzaniu na której kolumnie stan niski się pojawi. Oczywiście sterowanie stanem niskim czy wysokim zależy od konkretnej implementacji. Jedną komendą tego się nie opędzi.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 15:36 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

perlon napisał(a):
Poszukaj w sieci hasło "klawiatura matrycowa". Obsługa jej z grubsza polega na cyklicznym podawaniu stanu niskiego na kolejne wiersze i sprawdzaniu na której kolumnie stan niski się pojawi. Oczywiście sterowanie stanem niskim czy wysokim zależy od konkretnej implementacji. Jedną komendą tego się nie opędzi.


Przecież podałem Koledze link do gotowego opisu i biblioteki do obsługi takiej klawiatury więc nie widze celu błedzenia po sieci skoro na forum dużo razy temat ten był poruszany i dobrze opisany.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 16:28 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

Zrobiłem tak jak kolega w podanym linku. Klawiatura działa, z tym że po wciśnięciu klawisza 1 na lcd widnieje 48, po wciśnięciu 2 wyskakuje 49 itd, aż do klawisza 9, kiedy to pojawia się 65. Co znów zrobiłem źle ?
Wrzucam kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 16:59 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Rozumiem, że wysyłasz to po UART do innego procka, a z niego do LCD? jeżeli tak to pokaż procedurę wyświetlania znaku na LCD z drugiego procka. Podejrzewam co jest nie tak ale muszę zobaczyć kod by się upewnić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 17:13 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

Oto kod "odbiornika"

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

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 17:21 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

A spróbuj tak:

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 17:25 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

Niestety nie pomogło... po wciśnięciu klawiszy wyskakują dziwne znaki....

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 17:35 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

A skąd masz bibliotekę do lcd? Z książki czy jakąś z neta?
Jeśli z neta to podaj ciało funkcji LCD_WriteText(x);

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 17:35 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

a spróbuj wysłać jakaś literke w nadajniku. np. a, wtedy wszystko gra?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 18:36 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

wcześniej (przed podpięciem klawiatury) wysyłałem zmienne w zakresie 0-255 i było ok

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 18:52 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

A spróbuj tak:

kod dla nadajnika:

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


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


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 19:42 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 27
Lokalizacja: Warszawa
Pomógł: 0

Teraz jest dość dobrze, ale nie wiem jak przesłać znaki graficzne typu A B * # ?
Po wciśnięciu A na lcd wyskakuje 65
Oto kod:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Dopiero zaczynam przygodę z mikrokontrolerami.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 27 cze 2014, o 20:10 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

Zrobiłem tak, że nadajnik nadaje jakąś liczbę. Odbiornik sprawdza jaka to liczba i na tej podstawie nadaje jej odpowiednią do wyświetlenia wartość. Zobacz ten program czy Ci zadziała:

kod nadajnika:

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



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


i proszę Cie Kolego, weź się porządnie za naukę tego programowania, jak chcesz się czegoś nauczyć. Napisany przeze mnie program powinien spełnić to co chcesz uzyskać czyli wyświetlić znaki na LCD. Nie mniej jednak na Twoim miejscu zacząłbym pisanie od początku i zastanowił dlaczego takie a nie inne rzeczy pojawiały się na wyświetlaczu. Np wysyłałeś jedynke w ascii a później traktowałeś ją funkcją itoa. Taką drogą daleko nie zajedziesz. Książka w dłoń, poradniki Mirka i do dzieła.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 01:19 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 05 sty 2013
Posty: 272
Pomógł: 3

Bo dostajesz kody ASCII :)
65 - A

Teraz tylko pomyśleć co zrobić, żeby nie wyświetlać kodu znaku a znak :>

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2014, o 08:17 
Offline
Użytkownik

Dołączył(a): 22 sty 2014
Posty: 1806
Zbananowany użytkownik

Pomógł: 168

arturf209 napisał(a):
Bo dostajesz kody ASCII
65 - A

Teraz tylko pomyśleć co zrobić, żeby nie wyświetlać kodu znaku a znak :>


tak jak wspomniałem należy wysyłać char'y i nie traktować ich fnkcją itoa() jeszcze raz;)



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: 17 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO