Hirdetés
- Fotók, videók mobillal
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Azonnali mobilos kérdések órája
- Google Pixel topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Ennyibe kerülhet a Xiaomi Watch S4 európai változata
- Bemutatkozott a Poco X7 és X7 Pro
- Apple iPhone 17 Pro Max – fennsík
- Kis méret, nagy változás a Motorolánál
- iPhone 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
-
válasz
lanszelot
#20283
üzenetére
Nem tudom milyen enkódered van, de kénytelen leszel vagy interruptot használni, vagy ütemezőt, ahogy Aryes is írta.
Ha az a tipik pozícióba billenős kattogós enkódered van, akkor hiába forgatod, mert annak a clock lába mindig ugyanaz a stabil állapotban.
Mivel a kódod csak két villogás között mintavételez, ezért mindig csak az az állapot számít, ami a kék led kialvása + keses utáni DE a piros felvillanása előtti időben, azaz pár mikroszekundumban áll fenn. Tehát neked akkor kellene a CLK egy pillanatra más legyen. De ezt nagyon nehéz elkapni, leginkább lehetetlen, ezért a kódod folyamat azt látja, hogy a CLK változatlan, így nem tesz semmit a keses értékével.Interrupttal azt tudod csinálni, hogy a uC figyeli az inputot, és amint az változik, végrehajt egy kódot (esetedben a loop
/*read current state of inputCLK*/)Ennek köszönhetően a kód nem marad le a váltásokról, mert az interrupt szépen kierőszakolja a futást minden váltáskor.
Ütemezéssel pedig maradhat így a kódod, csak a delay-eket törlöd, és helyettesíted if() feltételekkel. Esetedben 4 ütemre van szükség: redOn, redOff, blueOn, blueOff. A kód elején meghatározod, hogy a piros először mondjuk a futás első másodpercében kell felvillanjon (redOn = 1000). Akkor kialudnia redOff = redOn+keses; időben kell. A blueOn ideje redOff+keses. blueOff = blueOn+keses. Ezután csak kitalálod if használatával, hogy a futásidő millis() éppen melyik ütemen belül van, és annak az ütemnek a feladatát hajtja végre. Mikor az utolsó ütemből is kilépsz, újra kell számolni az ütemek új időpontját. Így a loop nagyon gyorsan ismétlődik, és van esély, hogy nem marad le a futásod az enkóder mozgásáról. Igen, arra is van esély, hogy lemarad, főleg attól függően, hogy mennyire bonyolult marad egy-egy ütem.
Új hozzászólás Aktív témák
- Kezdő fotósok digitális fényképei
- Hogy is néznek ki a gépeink?
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Fotók, videók mobillal
- Androidos tablet topic
- Nintendo Switch 2
- Okos Otthon / Smart Home
- Kínai és egyéb olcsó órák topikja
- Kerékpárosok, bringások ide!
- BIOS topic
- További aktív témák...
- Asus G14 GA402RK -1TB,6800S,16GB/AnimeMatrix
- AMD Ryzen 5 5600X/3070/512Gb SSD/32Gb RAM/850W GOLD
- Chieftec GPS-350EB-101 A 350W ATX tápegység, Retro gépekbe!
- Gamer PC - Ryzen 7 5700X / RX 9060 XT 16GB / B550 WIFI / 32GB RAM 3600Mhz / 1TB M.2 SSD / 650W GOLD
- Canon EOS M50 Mark II kit obival, 2db eredeti aksival, 1000 expoval, gyári dobozában, táskával.
- Google Pixel 10 Pro XL Moonstone Super Actua 120 Hz, Pro kamera 5 zoom 256 GB Használt,Gari
- Bomba ár! Lenovo ThinkPad T495 - AMD Ryzen 5 PRO I 8GB I 256GB SSD I 14" FHD I Cam I W11 I Gari!
- Epson Workforce DS-530II dokumentumszkenner
- Bomba ár! Lenovo X1 Carbon G7: i5-8365U I 16GB I 512GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Workstation bazár - Lenovo, HP, Dell - számla, 6 hó garancia
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
ekkold

