Witam!
Nie wiem ,czy dobrze temat zatytułowałem.Chodzi mi o to,ze napisałem odczyt i zapis kart RFID.Wszystko działa dobrze z małym wyjątkiem.Nr kart sa zapisywane w menu.Przykład:Ustawiam licznik na 1 przykładam kartę i zostaje ona zapisana do pamięci,później zwiększam licznik i dokładnie ta sama procedura.Problem polega na tym,ze gdy któraś karta jest juz zapisana pod nr np:1 to po zapisie jej pod inny numer to przy odczycie następuje reset.Sa dwie takie same karty pod rożnymi adresami. Chciałbym dopisać przed zapisem porównanie komórek pamięci i jeżeli zostanie wykryty taki sam numer to pokaże error i nie zapisze do pamięci.Albo skasuje tamten wpis w pamięci.tylko problem w tym ,ze nie mam pojęcia jak przy zapisywaniu którejś karty porównać ja z danymi w eeprom.Odczytywać każda po koleji?Ma ktoś na to pomysł?
Re; EEprom
Czy założyłeś sobie jakąś maksymalną liczbę kart w pamięci? Ile bajtów numeru zapisujesz z jednej karty i w jaki sposób masz to zorganizowane w pamięci? Najprościej jest po odczytaniu numeru karty zachować go w zmiennej tymczasowej i odczytać po kolei wszystkie zapisane numery, jesli już taki istnieje to error albo nic nie robić bo karta już istnieje
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Mam zrobione to w ten sposób:
Mam zrobione to w ten sposób: Zrobiłem sobie tablice karta(14) as word. Odczytuje kartę i gdy karta jest w pamięci to wykonuje dana funkcje dla tej karty. Zapisuje ja w pamięci w ten sposób.Jeżeli nie ma karty w pamięci i licznik do przypisania numeru karty = np:1 to odczytuje wszystkie 14 adresów.I jeżeli karta nie jest zapisana to ja zapisuje w eeprom pod danym adresem. Zrobiłem to na if-ach i to działa,niestety generuje olbrzymi kod. W każdej karcie jest 14 if. Sama obsługa kart zajmuje 60% atmega32. Myślałem,ze jest jakiś inny sposób na odczyt pamięci. Moze w pętli,ale chyba tak sie nie da.
Re: Karty
Da sie zrobić w pętli, normalnie sprawdzaj pętla for po wszystkich wartościach w tablicy karta. Za każdym razem robisz pętle po tej tablicy jak tylko jest jakaś akcja z kartą. Np po przyłożeniu karty kiedy np przycisk "uczenia karty" jest wciśniety pętla sprawdza cz w którejś z komórek nie ma już tej wartości i jeśli jest to pomija zapis, jesli natrafi na komórkę o wartości np 0 to zapisuje w niej nową kartę.... prosta sprawa
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
ta prosta:) Nie mam zielonego
ta prosta:) Nie mam zielonego pojęcia jak w pętli for sprawdzać adresy pamięci.Na dzień dzisiejszy zostawiłem to tak jak miałem.Moze kiedyś do tego wrócę jak sie trochę podszkolę.Dzieki za odpowiedz.Pozdrawiam!
Re: Karta
Czytasz kolejne adresy:
Odczytujesz wszystkie karty z pamięci co dwa adresy skok bo karty masz w zmiennych word(dwa bajty) sprawdzasz czy nie ma takiego samego numeru i ustawiasz sobie zmienną pomocniczą istnieje na 1, potem wykonujesz odpowiednie akcje
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
teraz mam tak; If Poz_menu =
teraz mam tak;
a muszę mieć tak?
Rozmontowalem płytkę testowa i nie mam jak sprawdzić teraz. Jak zrobię ten licznik to sprawdzę ten kod.Zaoszczędzi mi on dużo miejsca.Będę mógł zapisać dużo więcej kart. Ps. Kiedyś czytałem,ze masz zamiar napisać kurs Bascom.:) Chętnie bym taka książkę kupił z przykładami bardziej zaawansowanymi.