Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ATMEL 89c51cc01 Assembler - Zamek szyfrowy na rejestrach - kod sortujacy

Patrickol 28 Kwi 2014 21:56 1056 5
  • #1 28 Kwi 2014 21:56
    Patrickol
    Poziom 2  

    Witam, posiadam problem z poprawnym zaprogramowaniem kontrolera. Postanowiłem zrobić zamek szyfrowy, niestety nie mogę wpaść jak dobrze dobrać kawałek kodu odpowiedzialnego za odkodowywanie. Na obecną chwilę postanowiłem, że użyję 4 rejestrów, w których będą liczby z danych klawiszy. Wartości, które im przypiszę są dowolne, ale różne. Próbowałem użyć CJNE, aby tylko odpowiednia kombinacja wchodziła, ale nie udało mi się to :/. Z góry dziękuję za podpowiedzi w rozwiązniu problemu.

    W projekcie wykorzystałem rejestry R0, R1, R2, R3, ktore są zapełniane po naciśnięciu przycisku. Przypisalem wartosci #5d,#10d,#15d,#20d. Niestety jak wpsomniałem, nie wime jak zrobić, aby wczytało tylko konkretny kod znakowy, a w razie 3 błędnie wybranych znaków pierwszych, wywołało odpowiednią funkcję blokującą. Funckja blokująca to błachostka, ale to sortowanie, nie mam pomysłu. Z góry dziękuję za pomoc.

    Próbowałem to zrobić w następujący sposób, ale już wiem, że nie ma to sensu i od razu skacze do ostatniego. Nie wiem jak logicznie rozwiązać, aby to działało :/

    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0 5
  • #2 29 Kwi 2014 19:51
    jarekgol
    Poziom 17  

    Przydałoby się wyjaśnienie jak dane trafiają do twoich rejestrów jak i schemat by nie zawadził.
    a) Bo nie wiem czy dobrze rozumiem, wciskasz klawisz nr 1 i gdzieś się zapisuje 5 a jak wciskasz nr 4 to zapisuję się w pamięci 20?
    b) program ma dla ciągu (przykładowo) 5,10,15 otworzyć, a dla 5,5,5 ; 15,10,5 itd zablokować?

    0
  • #3 29 Kwi 2014 21:02
    excray
    Poziom 39  

    Straszny śmietnik i w opisie i w kodzie i w tytule. Nie widzę potrzeby archiwizacji wciskanych klawiszy. Nie widzę nigdzie potrzeby sortowania czegokolwiek. Program moim zdaniem powinien robić to w locie jedynie wduszenie klawisza zatwierdzającego kod zwraca użytkownikowi wynik: akceptacja albo odrzucenie przy ewentualnym jednoczesnym zerowaniu albo inkrementacji licznika błędnych wpisów.

    0
  • #4 01 Maj 2014 20:06
    Patrickol
    Poziom 2  

    Poniżej zamieszczam kod. W tym przypadku przypisałem dla rejestru R0 wartość 5, która wypełnia rejestr po naciśnięciu przycisku C i wartość 10, która zostaje przypisana rejestrowi R1 po naciśnięciu przycisku D. Chciałbym, aby tylko powiedzmy kod CDDC mógł przejść, a po 3 błędnych próbach wywalało, iż kod jest niepoprany lub poprawny. Z góry dziękuję za pomoc.

    Kod: asp
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #5 02 Maj 2014 10:41
    Badmaneq
    Poziom 23  

    Od pewnego czasu tylko piszę w C i to zupełnie na inne mikrokontrolery, lecz naskrobałem takie "cóś":

    Kod: asm
    Zaloguj się, aby zobaczyć kod

    0
  • #6 08 Maj 2014 17:35
    Patrickol
    Poziom 2  

    Dzięki Wielkie za pomoc, kod wydaje się działać, teraz muszę tylko jakoś klawiaturę pod to odpowiednia ułożyć, bo niestety za dużo rady zczytuje naraz liczbę, gdy powinno tylko raz. :D

    0