-
Fototrend
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
-
gyapo11
őstag
válasz
zoombiee
#14015
üzenetére
Két dolog biztos kell, a pergésmentesítés és az időzítés.
A nyomógomb prelljére legegyszerűbb megoldás az adott idő utáni új beolvasás. Ha 0-ra vált a bemenet, onnantól kb. 50 ms múlva újra be kell olvasni, és ha még mindig 0, akkor a nyomógomb megnyomott állapotban van. Fölengedésnél ez nem kell, tételezzük föl, hogy megnyomott állapotban egy pillanatra sem szakad meg a vezetése.
Az időzítés pedig a millis() használatával és egy gomb figyelésével a következő:
if(1-es gomb megnyomva && regimill==0)
{regimill=millis()}if(1-es gomb megnyomva && (millis()-regimill)>1000)
{lejárt az 1 másodperc}if(regimill>0 && (millis()-regimill)>1000)
{regimill=0}A lényeg, hogy ne álljon le a loop pörgése, sok programban ez gond lenne, nálad is kerülhet be olyan programrészlet, aminek folyamatosan futnia kell, ezért ne használd a delayt.
Amint az 1-es gomb megnyomott állapotba kerül és a regimill változó értéke 0, beíródik a regimillbe a millis() aktuális értéke. Ez az if a továbbiakban a regimill nullázásáig nem hajtódik végre.
A második if-ben két feltételnek kell teljesülnie, ekkor lejárt az 1 másodperc.
A harmadik if biztosítja, hogy ha letelt az 1 másodperc, akkor is nullázza a regimill változót, ha közben fölengedték az 1-es gombot.
Még azt érdemes megoldnani, hogy a gomb fölengedésekor azonnal nullázza a regimill változót, hogy a következő gombnyomáskor indulhasson a számlálás.
Új hozzászólás Aktív témák
- Elektromos autók - motorok
- Eredeti játékok OFF topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Autóápolás, karbantartás, fényezés
- Kerékpárosok, bringások ide!
- Formula-1
- Samsung Galaxy A54 - türelemjáték
- 3D nyomtatás
- Milyen légkondit a lakásba?
- Android alkalmazások - szoftver kibeszélő topik
- További aktív témák...
- 1TB Samsung 3,5"-os HDD-k (ár és állapot infók a leírásban)
- Olcsó laptop! Lenovo Ideapad 1 15AMN7! AMD 7120U / 4GB / 128 SSD
- Bontatlan Steam Deck 512GB OLED + Dokkoló + 512 GB memóriakártya
- 1TB-os Western Digital 3,5-es HDD-k (állapot infók és árak a leírásban)
- Apple watch SE3 2025 cellular eladó! Garanciával gyári dobozban
- BESZÁMÍTÁS! ASUS H510M i7 10700 16GB DDR4 512GB SSD RTX 3060 Ti OC 8GB Zalman Z1 PLUS ADATA 600W
- Karácsonyi RAKTÁRSÖPRÉS!!! - Videókártyák, Monitorok, Notebookok, Stb. - Szaküzletből! Számlával!
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! ASRock B450M R5 3600 16GB DDR4 256GB SSD 2TB HDD RTX 2060 Super 8GB RAMPAGE Shiva 450W
- Huawei Watch 5 Titanium 46mm
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: Laptopműhely Bt.
Város: Budapest
ekkold
