- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Google Pixel topik
- Légies iPhone halvány színei
- iPhone topik
- Fotók, videók mobillal
- Azonnali mobilos kérdések órája
- Milyen okostelefont vegyek?
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- Motorola Moto G56 - bátyja árnyékában
- Okosóra és okoskiegészítő topik
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
JulianSinulf
őstag
Köszi!
Akkor az EEPROM-ba nagyon sok chip elfér, emiatt nem kell aggódnom.Akkor már csak az a kérdés, hogy lehetne ezt megfelelően leprogramozni.
Az elképzelés:
Fut egy alapprogram, mely a beléptetést vezérli. Ami kódokat most néztem, az alapján ez elég egyszerű, mert, ha nincs mit leolvasni, akkor a program mindig visszatér a leolvasáshoz. (Ez volt az egyszerű.)
Ide be lehetne tenni egy olyat, ha lenyomok egy gombot és "nyomva tartom", akkor a program továbbfut a kódbeírás részére.
Illetve, ha valaki megnyomná a csengőt, akkor a kód a dallamos részre ugorna.
Ezek az ugrálások már nem annyira egyszerűek, de a 2WD autó kódjából talán ki tudom hámozni a nekem kellő sorokat.
Chip felvitel:
Szóval megnyomtam a gombot, a kijelzőn megjelenik a "Bevitel" felirat és várja a chip odatartását. Esetleg egy 10s visszaszámlálással, mert hiába nyomom folyamatosan a gombot, az úgyis csak akkor számít, mikor a kódban a lekérdezése sor hajtódik végre.
Ha nem olvas be semmit, akkor 10s után visszatér az alap programhoz. Először azért gondoltam a gomb nyomva tartása opciót, mert akkor nincs szükség erre az időzítésre.
Ha sikerül a beolvasás, akkor kiírja az UID-t, majd egy újabb leolvasást kér és a két eredményt összehasonlítja. Ha megegyezik, akkor beleírja az EEPROM-ba az értéket.
Ami kérdéses számomra, hogy tudom megoldani a visszaszámlálást, miközben a chip-et is be kellene olvasni. És amikor olvasás történik, akkor a visszaszámlálás értelemszerűen leállna. Vagyis a processzornak egyszerre két feladatot kellene ellátnia.
Majd a másik kérdés, hogyan tudom beleírni a kapott eredményt az EEPROM-ba úgy, hogy egy következő chip bevitele ne írja felül akkor sem, ha újraindulna a program (áramszünet, reset).
Beléptetés:
Az EEPROM tartalmát megfelelően ki kell olvasni és eltárolni. Ez lesz összehasonlítva a belépéshez használt chip adataival. Viszont, ha nő a chip-ek száma, akkor a tárolók számát is növelni kell.
Úgy emlékszem erre is van valamilyen megoldás.
A másik megoldás, hogy egy tárolót használok és minden beléptetésnél ebbe a tárolóba olvassa ki a tárolt értékeket addig, míg az egyikkel egyezés van és beléptet vagy a végére érve nem enged be. Értelemszerűen nem akarok 128 UID értéket kiolvasni, ha csak 1, 2, 3, stb. van eltárolva.
Nem tudom, hogy időben ez mit számítana, gyanítom, hogy nem sokat pár chip esetén.És így visszaolvasva az írtakat eszembe jutott, hogy kellene egy törlési rész is. Mert, ha elhagynám a chip-et, akkor nem lenne jó, ha benne maradna a programban.
Akkor viszont sorszámozni kell az UID-ket az EEPROM-ban, hogy törlésnél egyszerű legyen kiválasztani a megfelelőt és olvasásnál értelemszerűen az üreseket kihagyni, de ott nem megállni. Vagyis mégis csak végig kell olvasni az EEPROM-ot.
Hacsak nem lehetne eltárolni az EEPROM egy részén, hogy mennyi chip van felvíve. Ez egy szám lenne. Bevitelnél nőne, törlésnél csökkenne az értéke egyel. És a program csak addig olvasná az EEPROM-ot, míg el nem éri ezt a bizonyos értéket.Így végigolvasva, hogy mit is szeretnék, nagyon szép, de sokkal egyszerűbbnek tűnik, hogy a kódban adom meg az engedélyezett chip-eket és, ha bővíteni kell, akkor bővítem a kódot és újraprogramozom az Arduino-t. Ha meg törölni kell, szintén ugyanez.
Az UID leolvasásához meg:
a) fenntartok egy külön erre a célra készült olvasót (nem valószínű),
b) kiolvasom a meglévő chip-eim adatait és ezt eltárolom megfelelően, így később nem kell már a kiolvasással bajlódnom (új chip vásárlása esetén bukta a dolog, de jelenleg van vagy 10 darab),
c) ha a chip nincs a programban, akkor kiírja az UID-t a kijelzőre. Azt fel tudom írni vagy lefényképezni és be tudom vinni gépen a kódba, majd a gépet az ajtóhoz vinni és felprogramozni helyben (ez a legesélyesebb tekintve, hogy nem számítok túl gyakori módosításra).Várom a javaslatokat, észrevételeket, ötleteket, hibákat a gondolatomban!
Új hozzászólás Aktív témák
- Bambu Lab 3D nyomtatók
- Medence topik
- Milyen légkondit a lakásba?
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Mr Dini: Mindent a StreamSharkról!
- RAM topik
- Google Pixel topik
- Peugeot, Citroën topik
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- További aktív témák...
- Asztali PC , i7 6700K , 1080 Ti 11GB , 32GB DDR4 , 500GB NVME , 500GB HDD
- Asztali PC , R5 8400F , RTX 3070 , 32GB DDR5 , 500GB NVME , 2TB HDD
- Legion Go 1TB
- Lenovo LOQ 15IRX9 - i5 13450HX, 16GB, RTX 4060 8G, 1TB M.2 (Gari: 2027.03.11.)
- LG 34WR55QK-B - 34" Ívelt VA - 3440x1440 - 100Hz 5ms - FreeSync Premium - HDR 10 - USB Type-C 65W
- Azonnali készpénzes AMD CPU AMD VGA számítógép felvásárlás személyesen / postával korrekt áron
- Bomba ár! HP EliteBook Folio 1040 G2 - i5-G5 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Zebra ZP505 EPL - Hőpapíros címkenyomtató
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
- Xiaomi Redmi A3 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest