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



Teraz jest 22 lut 2025, o 22:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 24 maja 2015, o 19:41 
Offline
Użytkownik

Dołączył(a): 08 kwi 2014
Posty: 30
Pomógł: 0

Witam,

Po obejrzeniu serii poradników Pana Mirka z serii ADC stworzyłem sobie prostą klawiaturkę składającą się z 4 klawiszy (docelowo ma być 12, ale chciałem sprawdzić na początku, czy to wszystko zadziała). Wszystko pięknie działa, 4 diody led pięknie się zapalają po wciśnięciu odpowiednich klawiszy, na lcd wyświetlają się pięknie cyferki odpowiadające klawiszom. Działa też funkcja Auto Repeat (którą na chwilę obecną skasowałem).

Dalej sobie pomyślałem, aby stworzyć taki prosty zamek szyfrujący. Z początku próbowałem porównywać hasła i klawisze na zasadzie Sumy lub iloczynu (Wiem, że to banalne). I nawet do pewnego stopnia działało....problem w tym, że jeżeli hasło było np 1234 , to jakakolwiek kolejność cyfr powodowała "zadziałanie kodu".

Kolejna próba to porównanie tablic... niestety tutaj pojawia się problem z pętlą FOR, którą dodałem....Mianowicie każda cyfra pojawia się 4 razy na wyświetlaczu... "Hasło działa jedynie gdy pod "tab1" jest wpisana 4 razy ta sama cyfra.... Domyślam się, że problem jest albo z pętlą, albo z wyświetleniem cyfr na wyświetlaczu....

Dlatego zwracam się z prośba o pomoc, jak to zrobić, żeby działało.....poniżej wrzucam kod programu


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: 25 maja 2015, o 09:45 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Swoszaki napisał(a):
...Sumy ...problem w tym, że jeżeli hasło było np 1234 , to jakakolwiek kolejność cyfr powodowała "zadziałanie kodu".

Nie wiem jak masz, ale sumę powinieneś porównywać:
cy1*1000 + cy2*100 + cy3*10 + cy4
W takim przypadku jest tylko jedna możliwość zgodności.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 maja 2015, o 17:40 
Offline
Użytkownik

Dołączył(a): 08 kwi 2014
Posty: 30
Pomógł: 0

Zrobiłem tak, ale dalej jest to samo....czy wpisze 1234, czy 4231,czy 1342 to dioda led gaśnie....
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: 26 maja 2015, o 21:02 
Offline
Użytkownik

Dołączył(a): 08 kwi 2014
Posty: 30
Pomógł: 0

Po pewnej liczbie kombinacji udało się :) A wystarczyło podejść troszkę od innej strony...
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: 2 paź 2015, o 18:43 
Offline
Użytkownik

Dołączył(a): 08 kwi 2014
Posty: 30
Pomógł: 0

Witam po trochę dłuższej przerwie spowodowanej różnymi innymi zajęciami.

Temat dalej dotyczy klawiaturki. Wykonałem sobie już całą 12 przyciskowa klawiaturkę (0...9 Reset,Enter). Wszystkie cyferki pięknie wyświetlają się na lcd, przycisk kasowania ekranu też działa.

Problem jest taki....

Chciałbym, aby po wpisaniu prawidłowego hasła (1,2,3,4) oraz naciśnięciu przycisku Enter wyskakiwało "Hasło prawidłowe"....i to działa, ale tylko w przypadku jak po wpisaniu tych cyfr trzymam klawisz enter wciśnięty przez 1-2 sekundy. W innym przypadku następuje "czyszczenie ekranu".

Domyślam się, że problem jest gdzieś w tych linijkach....
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

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

Czy ktoś mógłby doradzić mi co tam nie chwyta...?

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

Z góry dziękuję.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 11:14 
Offline
Użytkownik

Dołączył(a): 08 kwi 2014
Posty: 30
Pomógł: 0

To jak? Pomoże ktoś?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 paź 2015, o 13:52 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Ciężko trochę interpretuje się Twój kod, ze względu na lekkie niechlujstwo, ale postaram się pomóc.

Po krótkiej analizie wydaje mi się, że problem leży w zmiennej a i warunku jej dotyczącym.

Po każdej wpisanej cyfrze pinu zwiększasz ją o jeden, czyli generalnie po wpisaniu czwartej cyfry zostaje wykonany warunek
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Twój program zostaje "ubity" na 2 sek, zmienna a się resetuje, zmienna enter również. Zatem warunek enter==1 jest niespoełniony.
Dopiero po przejściu delaya czyli te 2 sek, zmienna enter przy wcisnietym klawiszu zostaje ustawiona na 1 i wykonuje sie warunek
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gotowego rozwiązania nie będę Ci podrzucał, ale myślę że wiesz co poprawić :)

Pozdrawiam!



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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


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