Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
A szenzorban egy olyan kapcsolás van ami leválasztja a vivőfrekvenciáról ami 36KHz környéke, az adatot. Az adatok már magas/alacsony módon jönnek a lábán sorban egymás után.
A protokollnak meghatározott módon váltogatnia kell a magas/alacsony jelszinteket. Az Arduino-nak ezeket fel kell dolgozni és kiértékelni. A használt függvény pont ezt csinálja. De mivel a protokollnak jól meghatározott bevezető és lezáró jelei vannak, ezeket neki meg kell várnia. Amikor folyamatosan nyomja a gombot akkor egyszer elküldi ezeket de aztán már csak egy rövid ismétlő jelet ismételget folyamatosan, nem a kódot. Ha a jelfolyam felénél kapod el a sorozatot, nem mégy vele semmire, hiába változik a jelszint, mert nem lesz mit kikódolni. Tehát nem kaphatja el újra mert nincs semmi amit kiértékeljen, már csak a repeat jelet ismételgeti. Hiába változik a láb jelszintje, a függvény már le se fut, nem ad vissza értékelhető eredményt, mert nincs meg a Leading jel. Maga a függvény is interruptot használ a magas/alacsony jelek hosszának mérésére és amíg nem jön a lezárás, nem fog mással foglalkozni. Ha a függvény nincs felkészítve a repeat jel kezelésére, akkor hiába az egész, mert úgyis el kell engednie a gombot, hogy megismételje a parancsot. Tehát még egyszer: ha NEC a protokoll akkor kiküldi a Leading jelet, majd egy szünet, aztán az address 8 bitjét, majd az address inverz 8 bitjét, majd a command 8 bitjét, majd a command inverz 8 bitjét, aztán egy lezáró jelet. Kész a parancs. Majd innentől felváltva küldözgeti a repeat jelet és egy szünetet ami nagyon könnyen megkülönböztethető. Ezt a repeat jel ismételgetést addig fogja csinálni amíg el nem engeded a gombot. A képek magukért beszélnek. Szerintem a gomb lenyomásakor saját magának kellene eltárolnia a kérdezőnek, hogy lenyomta a gombot (state machine). De az általam ajánlott RC5-master library-ban ez már meg van oldva toggle néven. A hozzászólás módosítva: Okt 6, 2016
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ!
![]() Köszi! Leesett, hogy hol gondoltam félre! ![]() Most már sokkal jobban értem!
Odáig hallatszott a koppanás mi?
![]()
Szia!
Több gond is van. 1: Int seconds helyett long kell. Int-ben 32,767 lehet a max. Ez 9 óra 6 perc környéke. (ezt a playetimeból számolod) 2: Az if szerkezeteid szerintem nem jók, mert egymásba vannak ágyazva, azaz a perc '01' helyes kiírása csak akkor fut le, ha az óra is kisebb mint 10.
Papírtantusz, ahogy errefelé mondják.
![]() Egy kép többet mond ezer szónál. ![]()
Valahogy így, de ma már nehezen értek meg dolgokat
![]()
A hozzászólás módosítva: Okt 6, 2016
Nagyon szépen köszönöm!
![]() ![]()
Szívesen, örülök.
Melyik lett jó? Csak a long, vagy a kód is amit utoljára küldtem?
Egy par gondolat, idezojelbe:
Idézet: „vizor: „Itt inkább el kéne kapni a repeat jelet és akkor ismételgetni a változó növelését.” kapu48: „Kellene készíteni egy ki listázó alkalmazást, hogy lássad, mit kapsz ismétléskor?” vizor: „Ezt a repeat jel ismételgetést addig fogja csinálni amíg el nem engeded a gombot.”” Ezek utan esett le nekem is hogy az a REPEAT dolog mire is valo a library-ba. Mert van benne REPEAT fuggveny, csak nem ertettem hogy az mire is valo lenne. A kerdes most csak az hogy hova tegyem a REPEAT jel olvasasat/ ckiertekeleset es hogy onnan mivel megyek vissza (return ?), vagy csak egyszeruen raadom a „+=5” novelest. Szerintem mar uton vagyok csak meg sok a kanyar es nem latom a celt. Koszonom, ha nem akarodzik meg jovok A hozzászólás módosítva: Okt 6, 2016
Nem akarok kontarkodni, de ha csak egy visszaszamlalasrol van szo akkor ott a „chrono” lib. Szerintem egy ilyen celnak tokeletes.
Tízperces lépésekben növelem a már működésben lévő visszaszámlálót. Így, csak a long változtatása 9:59 teljes fagyás. Viszont a kód tökéletes. Találkoztam nagyon hasonló mintával. De úgy tűnik, akkor próbálom alkalmazni, ha a fejembe, verik! Úgy gondolom így jár az ember, ha autodidakta módon tanul. Még egyszer köszönöm!
A library forráskód szerint:
Amikor visszatér a decode() függvény: result.value=data Amikor már repeat megy a jelben, akkor: result.value=REPEAT A REPEAT egy konstans a library headerben: #define REPEAT 0xffffffff Eltárolod, hogy milyen parancs volt előzőleg és amikor már REPEAT-ot kapsz vissza, megismétled az előző műveletet ami a változóidat állítja. A hozzászólás módosítva: Okt 6, 2016
Idézet: „Így, csak a long változtatása 9:59 teljes fagyás” Ajaj. Akkor még mindig kifagy?
Nem már minden ok. Ahogy a mondandóm második felében írtam a teljes kód változtatással már tökéletesen működik.
Pedig érthető. Csak akkor kel elé 1 helypótló 0-a, ha a szám kisebb 10-nél!
Vagyis:
A hozzászólás módosítva: Okt 6, 2016
Valami ilyesmi „forrik” nekem is.
Csak egy a gond, kene valami idozites is bele, de interrupt alatt nem mukszi a „delay”. A hozzászólás módosítva: Okt 6, 2016
Mégis rossz a zárojelezésed!
Minek az else ág?
Nem jobb ahogy én mutattam?
Szia!
milis(); Ha jól emlékszem, akkor interruptnál ez kellene neked a delay helyett.
El lehet hagyni '}'-t? Hogy értékelődik ki ilyenkor? Ha az óra 9, akkor mi lesz az eredmény? Értem már. Tényleg nem kell oda annyira az else ág, én így oldottam meg, ennyi. Amit küldtél abban azt mondod nem kellenek a '{}' Valamint azt írtad rossz a zárójelezés, majd azt, hogy minek az else ág. Az utóbbit értem, de hol a hibás zárójelezés? Meg tényleg nem tudom, hogy mikor lehet elhagyni a {}-t A hozzászólás módosítva: Okt 6, 2016
If
Ez mind egyforma:
Ha csak 1 utasítás van a feltételben. A hozzászólás módosítva: Okt 6, 2016
Valahogy nekem ez maradt meg, mindenhol így használom a {}-jeleket.
![]() De értem miért nem kell mindenhova. A kérdezőnek ezen kívül volt más kérdése, gondoltam átírom legjobb tudomásom szerint. Az else ágat kivenném (kezdőként jobban emészthető ez a forma), de a {}-t bennhagynám. Nekem így könnyebb átlátnom.
Igazad van!
Nállam viszont gyözőtt a lustaság!
Lustaság fél egészség, mint mondják, de itt most rövidebb kód is egyben, jól jöhet még ez az infó!
![]() Köszi!
Sziasztok.
Most kezdtem el foglalkozni az Arduinoval. Kérdésem vele kapcsolatban, én mint kezdő, inkább vegyek egy komplett Arduino kit-et, vagy érdemesebb külön megvásárolni? Hogy mire akarom használni, hát egyszerűbb feladatokat kipróbálni, mint led villogtatása, 7-szegmenses kijelző stb.. Köszönöm.
Attól függ mennyi egyéb perifériának való "lomod" van ?
Ha ezen kívül speciálisabb eszközökkel is szeretnél ismerkedni akkor azokat kell megvenni. Vannak "viszonylag olcsón" megvehető sokféle részegységekből 1 - 1 - 1 darabot tartalmazó kittek(szervo , 8*8 pontmátrix , H-híd , LCD , breboard, valamelyik arduino lapka, 7szegmenses kijelző 1 és 4 digites , 3*10db LED , gombok , fényérzékelők, PIR, RTC , gyro, ...stb. ). Szerintem eleinte elég ha pár darab ledek , nyomógombok, tranzisztorok , villanymotor, 2 3 shift regiszter IC ezek pár forintos tételek vagy donorból is elérhetőek. Ahogy egyre mélyebben megismerkedsz akkor beszerzed a szükséges darabokat. Elektronikai (alap) ismeretek se ártanak előtte ![]() A hozzászólás módosítva: Okt 7, 2016
|
Bejelentkezés
Hirdetés |