Fórum témák
» Több friss téma |
Igen, de igazad van, nem kell több!
Viszont azt meg tudod-e mondani, hogy hogyan lehetne új panelt gyártani?
Igen, sajnos én is azt látom, hogy még a C kódrészét meg is lehetne írni, de beláncolni már nem lehetne a fejlesztő környezetbe. Kár, hogy erre nem gondlotak, mert akkor lehetne fejleszteni a programjukat. Ez mondjuk sok kérdést tenne fel...
Ebben egyetértek.
Viszont gondolkodtál a gomkezelős feladaton?
Erről mi a véleményed? Egy kicsit bonyolultra sikeredett , de minden gombnyomásra csak egyszer fut le az "utasítás"
A hozzászólás módosítva: Nov 25, 2012
Ezzel az a gond, hogy nincs prellmentesítés és ha a fő programszálban elidőzik a program, akkor nem veszi észre, hogy megnyomtad a gombot. Vannak olyan feladatok, amire ez a megoldás is elég, mert ha kiteszed megszakításba a figyelést, akkor az második kritériumomnak megfelel, de az elsőnek nem és még egy jó párnak sem.
Gondolj egy érték léptetésére(egyelőre felfelé). Csak egy gombra koncentrálj első körben. A léptetendő értéket egyesével lehessen léptetni, de ha a gombot folyamatosan nyomva tartod, akkor egy hosszabb idő után léptesse az értéket a gomb elengedéséig egy gyorsabb ütemben. Az is feltétel, hogy ha a gombot egy időn belül elengeded, akkor azt ne fogadja el megnyomásnak(prell mentesítés). Köszönöm, hogy foglalkozol a kérdéssel és beszálltál a játékba! A hozzászólás módosítva: Nov 25, 2012
Itt egy újabb , ez már "léptet is "
A hozzászólás módosítva: Nov 25, 2012
Alakul! Mi van az int számlálóval, ha nem nyomod meg a gombot? Túl fog menni 3000-en, nem? De ez még mindig nem az amire gondoltam.
Több mindent meg lehet csinálni a megszakításban. Azok a programrészek, amik változtatnak egy értéket, összehasonlítanak, elágaztatnak stb. nem tartanak sokáig. Csak várakozni tilos(pl. delay, ciklusok, stb.). Jó prellkezeléshez 180Hz körüli érték kell. Persze a gombkezelést nem kell ilyen sűrűn megnézni, de a prellhez kell, hogy finoman tudj hangolni. Több folyamatszámláló kell, több jelző... Ki tudod próbálni ezt áramkörön? Ott minden hiányosság kiderül, mert a szimuláció nem tudja visszaadni a valóságot ilyen rutinoknál.
Még annyit, hogy egy megszakítási rutint nem illik meghívni kívülről. Valamint nem elegáns GOTO-t használni(ugrást). Meg lehet oldani nélküle is, és sokkal áttekinthetőbb lesz a program.
A hozzászólás módosítva: Nov 25, 2012
Nekem is van erre egy verzióm bár biztos van egyszerűbb is! Ez figyeli meddig van lenyomva a gomb lehet 1-esével léptetni lehet állítani mikortól kezdjen el futni lehet állítani mennyi legyen a perl idő.
No ez már jó megközelítés! Most már csak csinálja azt, ami a házifeladat volt. (Lenyomva tartáskor egy hosszabb idő után kezdje magától léptetni).
És próbáljuk egy gombbal egy változó értékét növelni, hogy egyszerűbb legyen értelmeznem, mert már látom, hogy mire vállalkoztam. Ti ügyesen megírtok egy programot, én meg nem győzöm megérteni!
Szia! Ez ügyes megoldás, nagyon közeli annak, amit én vártam, talán még jobb is, mert azonnal reagál a megnyomásra. A legtöbb esetben a prell ideje előtt nem fogadunk el jelet, de te azt figyeled, hogy két gombnyomás között mennyi időnek kell eltelnie. Kicsit sok lépésben oldod meg, de végül is jó megoldást adtál, gratulálok!
Annyit kritikának, hogy mindent a megszakításban végeztél el a kijelzést kivéve. Ez nem nagy baj, csak nem lesz univerzális a rutin. Ezt jelzőkkel lehetne univerzálissá tenni. Érdemes különválasztani a gomb megnyomásának tényét jelző rutint, ami mehet a megszakításban, és a lekezelését, ami már a fő cilusban kezelődik le. A lekezeléskor érdemes törölni is a gomb megnyomását jelző jelzőt! Többieknek jelzem, hogy másképp is meg lehet oldani, nincs még lezárva a kérdés, ha van még kedvetek hozzá!
És másokat tettél bele!
Megszakítási rtuinban nem szabad LCD kijelzést tenni, se más időigényes dolgokat.
Ez már majdnem azt csinálja, amit kell! Egy a baj vele, hogy egyesével nem tudom léptetni a LED-eket(állítottam a Timeren, úgy derült ki), csak nagyon trükkösen(gyorsan fel kell engedni a gombot,(átállítottam nyomógombra közben)). A másik észrevételem azonos kokozo-éval, hogy nem különül el az esemény lekezelése(számláló növelés) a gomb figyeléstől. Ez utóbbi nem lehet kifogás, természetesen, de érdemes e felé gondolkodni.
Neked azért ilyen sok a blokk, mert két gombbal is foglalkozol. A hozzászólás módosítva: Nov 25, 2012
Az arányokat próbáltam érzékelni a szerint sokáig kell nyomva tartani, majd amikor elkezdi léptetni, már nem hagyja abba, hacsak gyorsan el nem engedem. Csatoltam a módosított, még is változatlan kódodat.
Mint már írtam, kezdő vagyok. Ti több klasszissal előttem jártok. Egy ideje már csak Befogadom az infót. Tanulok. Hozzászagolni sem tudok.
Már az előbb is elfogadtam jó megoldásnak, most már belekötni sem lehet!
Még szerencse, hogy nem pont olyan, mint az enyém, mert a végég azt hihetnétek, hogy veletek íratom meg a tökéletes gombkezelő rutint! Ha nem veszed sértésnek(manapság nem trendi dícsérni valakit, mert azt hiszik hátsó szándéka van a dícsérőnek), szép és jól átgondolt a stílusod! Köszi, hogy részt vettél a vasárnap délutáni játékokon!
Semmi gond, ez az egész érted is van, meg a jó játékért! Már egy nagyon jó példát láthattál, illetve kettőt!
Most el kell mennem, este felteszem az ötletadó rutint cincálásra, véleményezésre. Addig is, ha van kedv, várom a megoldásokat! Köszönet!
Tényleg! Ez a megoldás is elfogadható, pont úgy működik, ahogy kell és ha csak egy gombra számolom a blokkokat, akkor nem is sok a számuk. Gratula!
Az egyiknek az a hibája, hogy hosszan lenyomva a gombot kettőt számol, majd leáll. A gombot elengedve még egyet számol.
A másiknál hosszan nyomva a gombot szépen számol, de elengedés után még beszámol 2-őt.
Gondolom az enyém a 2. A ha végignézed a programot látni fogod miért számol még 2-t. Azért hogy a szimulátorban is lehessen tesztelni ne csak proteusban. Gyakorlatilag ha a felenged értékét 10 vagy az alá veszed hibátlanul működik csak a szimulátorban nem tudsz olyan gyorsan gombot nyomkodni mint kellene ezért lett 100 beállítva. a legtöbb esetben még a 10 is sok lehet nem hogy a 100! Próbáld ki úgy is hogy átállítod a felenged > 100 felenged > 10-re.
A kijelzést csak a teszt kedvéért tettem bele , hogy megfigyelhető legyen a megszakítás .
Ezennel eredményhírdetést tartok, mindenki nagyon jól dolgozott és nagyon hasznosan töltötte az időt. Nyeremény a tudás, amit szereztünk.
Csatolom azt a megoldást, ami egyike a sokaknak. Aki kevesebb lépésben megoldja, külön tudásbónuszt szerezhet(magának). Aki hibát talál benne, szintén. Ha ez tetszett nektek, szerintem érdemes lenne hasonlókat rendezni. Mindenkinek köszönöm a részvételt és kérem ha még van ez ügyben újabb ötlet, ne tartsátok magatokban!
Most jön a kibic kérdése. Mi van akkor, ha 4 ilyen gombot akarok üzemeltetni?
Én nem az a tudós vagyok, én kicsivel írom.
|
Bejelentkezés
Hirdetés |