- vrob: Az IBM PC és a játékok a 80-as években
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- gban: Ingyen kellene, de tegnapra
-
LOGOUT
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
Hirdetés
- Lenovo Ideapad Gaming 3/Intel i5-11320H/16GB/512SSD/RTX 3050 TI 4GB/Gari
- HP VICTUS Gamer laptop /i5-12450H/16GB/512 GB SSD/RTX 3050 4 GB/144Hz/
- Corsair RM750x
- Lian Li 011Dynamic Evo/RTX4070Super Eagle OC/Intel Core i5-14600K/DDR5 G.Skill Trident Rgb 6000MHz
- Xiaomi Redmi Note 13 256GB Kártyafüggetlen 1Év Garanciával
- Fotó állvány eladó
- BESZÁMÍTÁS! 6TB Seagate SkyHawk SATA HDD meghajtó garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged