- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- AMD Navi Radeon™ RX 9xxx sorozat
- Egérpad topik
- AMD Navi Radeon™ RX 6xxx sorozat
- HiFi műszaki szemmel - sztereó hangrendszerek
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- Hisense LCD és LED TV-k
- Milyen házat vegyek?
- Fejhallgató erősítő és DAC topik
- Az előírások megszegése miatt éghet le egyes alaplapokon a Socket AM5 foglalat
-
PROHARDVER!
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
- Allegro vélemények - tapasztalatok
- Autós topik
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- A fociról könnyedén, egy baráti társaságban
- BestBuy topik
- Külföldi rendelések: boltok, fizetés, postázás
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- BESZÁMÍTÁS! Apple MacBook Pro 16 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 14 M4 Max 36GB RAM 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple MacBook Pro 16 2024 M4 Max 64GB 2TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple Macbook Pro 13 2020 M1 16GB 1TB SSD macbook garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASUS TUF VG27AQ 165Hz QHD IPS 1ms monitor garanciával hibátlan működéssel
- Eredeti Lenovo USB-C 65W töltők
- HIBÁTLAN iPhone 15 Pro Max 256GB Black Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS3004
- JBL Xtreme 3/4 akciós áron eladó!
- Bomba ár! Dell Latitude 5401 - i5-9400H I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 128GB SSD I 15,6" FHD I W10 I HDMI I Cam I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest