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



Teraz jest 18 kwi 2024, o 08:40


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 8 lip 2018, o 20:16 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 04 gru 2017
Posty: 12
Pomógł: 0

Witam i o zdrowie pytam!

Piszę post z nadzieją, że otrzymam jakąś radę. Mam mały problem z napisaniem kodu, który chciałbym żeby działał w następujący sposób: z klawiatury matrycowej wpisuje liczbę 2 cyfrowa, którą następnie poprzez naciśnięcie przycisku np. # zaakceptuje i zapisze ją w pamięci mikrokontrolera i następnie przyrównam ją do wartości czujnika. Czy macie jakąś wskazówkę od czego zacząć? Mam trochę napisanego kodu, klawiatura matrycowa chodzi bez zarzutu, ale wykorzystać w ten sposób jej nie potrafię tak jak opisuję.

Pozdrawiam.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 lip 2018, o 21:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

możliwości jest bardzo dużo. Jeżeni obsługujesz już klawaturę, to ja zrobiłbym tak, że powołałbym sobie zmienną pomocniczą powiedzmy pom. oaz dla wpisywanych cyfr np: jed i dzies.
na początku om =0

Po wduszeniu cyfry sprawdzamy pom i odpowiednio zapisujemy liczbę do dzies lub jed, jednocześnie zwiększając pom++

if (pom==0) {
dzies = wduszonykalwisz;
pom++;
}

if (pom==1) {
jed = wduszonyklawisz;
pom++}

Potem po wduszeniu #
liczbadoporownania = dzies*10+jed; pom=0;

klawiatura w takim zapisie reaguje tylko na 2 pierwsze wduszenia, potem czeka na #

to tak w wielkim skrócie

Na pewnoi idzie dużo prościej ale to taki mój pomysł an problem na szybko


Autor postu otrzymał pochwałę

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 9 lip 2018, o 07:36 
Offline
Użytkownik
Avatar użytkownika

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

Pomysł @skalarro jest całkiem dobry. Ja nawet rozwinął bym go jeszcze trochę i dodał czasomierz, który zerował by wpisywaną wartość i zmienną pom powiedzmy po 2s od ostatniego wciśnięcia klawisza. Dzięki temu przypadkowe kliki klawiatury były by wyeliminowane :)


Autor postu otrzymał pochwałę

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2018, o 16:22 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 04 gru 2017
Posty: 12
Pomógł: 0

Zacznę od tego, że skorzystałem z podpowiedzi, ale nie wiem czy do końca zrozumiałem intencje. Jak widać w main() przypisałem pom = 0, ale nie wiem czy o to chodziło. Do tego jeszcze musiałem zdefiniować dwie zmienne dzies i jed, które też widać. Nie dodałem, że mam klawiature 4x4 wiec numery klawiszy są różne od wartości na klawiaturze (klaw == 4 to przycisk A).


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



Tutaj zaczynają się schody bo po wcisnieciu odpowiedniego klawisza na klawiaturze wchodze w procedurę, która będzie odpowiedzialna za podlewanie zależne od wilgotności. Jednak będąc juz w tej procedurze, próbując wpisać liczbę nic się nie zmienia. Jedynie przed wejściem w "Wilgotność" proces reaguje na wpisywanie cyfr lub reaguje wtedy, gdy zatwierdzam to klawiszem # (co też nie daję mi pewności czy jest dobrze napisane. (poniżej)

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


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


Wiecie może co robie źle, bo niestety ale skończyły mi się pomysły.

Z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2018, o 17:44 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 04 gru 2017
Posty: 12
Pomógł: 0

Nikt nie wie jak mi pomóc, bo niestety jeszcze nie znalazłem rozwiązania na mój problem? Na prawdę nie wiem z czym to jest związane, że dzieję się tak jak opisałem. Bardzo prosiłbym o wskazówkę. :)

Pozdrawiam ciepło.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2018, o 19:13 
Offline
Użytkownik

Dołączył(a): 08 mar 2015
Posty: 60
Pomógł: 5

Po pierwsze co to ma robić?
Cytuj:
if(key = read_keypad())

Przypisujesz coś do zmiennej w instrukcji warunkowej?

Po drugie:
Cytuj:
if (pom==0)
{
dzies = a;
pom++;
}

if (pom==1)
{
jed = a;
pom++;
}

te dwa warunki zawsze się wykonają i w zmiennej "dzie" i "jed" będziesz miał wartość spod zmiennej "a".

_________________
Http://anonimg3.comxa.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 lip 2018, o 20:05 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 04 gru 2017
Posty: 12
Pomógł: 0

Ta funkcja sprawdza kolejno wszystkie przyciski klawiatury i zwraca numer pierwszego wciśniętego przycisku. Zapisuje ją do zmiennej key i potem z każdym numerem przycisku, od 1 do 16, wywołuję ją.

Jeśli chodzi o drugą podpowiedz to zauważyłem właśnie, że do obu zmiennych zapisuje się ta sama liczba, co nie spełnia moich oczekiwań. Jest jakaś inna możliwość, aby to rozwiązać?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 lip 2018, o 08:54 
Offline
Użytkownik

Dołączył(a): 08 mar 2015
Posty: 60
Pomógł: 5

KampoPampo napisał(a):
Ta funkcja sprawdza kolejno wszystkie przyciski klawiatury i zwraca numer pierwszego wciśniętego przycisku. Zapisuje ją do zmiennej key i potem z każdym numerem przycisku, od 1 do 16, wywołuję ją.

Jeśli chodzi o drugą podpowiedz to zauważyłem właśnie, że do obu zmiennych zapisuje się ta sama liczba, co nie spełnia moich oczekiwań. Jest jakaś inna możliwość, aby to rozwiązać?


Ale człowieku Ty w tym If'ie przypisujesz coś do zmiennej a nie sprawdzasz! Jaki jest sens takiego If'a?

Tak jest inna możliwość, zacznij pisać kod od początku i uzupełnił wiedzę z zakresu instrukcji warunkowych. Wybacz, ale logicznego/analitycznego myślenia to nikt Cię tutaj nie nauczy ;)

_________________
Http://anonimg3.comxa.com



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 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