Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Köszi.
Kicsit így is szétdarabolt, de keveset eszik és jól működik.
Viszont lenne egy kérdésem: Lekérdezhető hogy egy adott StepNeoCoulours, vagy eyeAnim mennyi elemből áll, mert a sizeof erre nem jó? (ha egy ciklussal az is jó, mert nekem pont egy ciklussal kell végigmenni az elemeken és ahol kell állítani.) Látom te is külön határoztad meg, és írtad le a az egyes méreteket. Sok módon próbálkoztam, de vagy a mutató 2 byte-os méretét kapom, vagy maga a mutató mögötti opj struktúra méretét. De megkérdem hátha van ötlet esetleg. Ha nincs, akkor lépésenként és animációnként fel kell áldozom egy-egy byte-ot, hogy leírjam a méretet. Akkor kb. így tudnám elképzelni:
Előre is köszi.
igen, megváltoztattam, másképp nem is engedi feltölteni
nekem még két öltletem lenne bár ebből 1-et már kipróbáltam: az egyik az hogy a "void PinA" és a "void PinB"-ben van egy "reading = PIND & 0xC;" sor namár most ez az UNO-nál a 2-es, 3-as lábnak az elnevezése PD2,PD3 míg a MEGA-nál a 2-es 3-as láb PE4, PE5, nem lehet, hogy a "PIND"-t "PINE" kéne módosítani? (mondjuk ezt próbáltam de semmi) Aztán a másik ötletem, hogy az "if(reading == B00001100 && aFlag)" -nél a kiolvasott érték nem: B00001100 hanem vmi más.
Más más board, ez zavar be.
Próbáld ki, hogy nem 0,1 az interruptban, hanem 4,5 mint ahogy az ábra is mutatja! Eredeti hozzászólásodban: attachInterrupt(0,PinA,RISING); attachInterrupt(1,PinB,RISING); Új: attachInterrupt(4,PinA,RISING); attachInterrupt(5,PinB,RISING); Az Int4 a 2-es pin, int5 pedig a 3-as. A bekötés pedig mint volt eredetileg, azt hiszem. A MEGA-nak van több interrupt pinje, ha ezekkel sem megy akkor próbáld ki másikakkal. A hozzászólás módosítva: Aug 18, 2017
Hasonlóan képzeltem el én is.
Még annyit javasolnék, hogy használj beszédesebb neveket. Pl.: „anim1…” nem fejezik ki, hogy mit tesz a rutin, és nem is biztos, hogy ez lesz az első anim. Mikor már lesz több animációd, akkor úgyis kevergetni fogod a lejátszás sorrendet. Hozzá igazítva az adott szituációhoz.
sajna így se csinál semmit, végig próbáltam az összes pint
Atmega1280 nál az INT0 és INT1 a pind.0 és pind.1 lábra van rakva, ez a 43 és 44 es pin
static int pinA = 43; static int pinB = 44; reading = PIND & 0x3; if(reading == B00000011 && aFlag) { Próbáld így.
Valaki csinált már több fájlos projectet?
Megtaláltam ha új lapfület csinálok, akkor azzal szét tudom dobni a feladatokat. Ha a 2-es fájlban csinálok egy függvényét azt az 1-esben meg tudom hívni. De ha a változó struktúrát és a változókat hozok létre függvényen kívül, azt nem látom az 1-es fájlban. Mit kell csinálni, hogy rendesen mindent lássak, de mégis feladatokra szét tudjam osztani a progit? Köszi előre is.
szia!
MEGA2560-om van, kipróbáltam amit írtál, de így sem akar működni
static int pinA = 21;
static int pinB = 20; Ezt próbáld ki, elnéztem lehet.
gondoltam, hogy elnézted
amúgy próbáltam, nem müxik.
Writing a Library for Arduino:
Bővebben: Link
Ha az előző linken szereplő morze.zip-et letöltjük!
Találunk ilyen elavult szerkezetet: Morse\examples\SOS\SOS.pde Át is nevezhetjük rögtön: Morse\examples\SOS\SOS.ino Ez után, mivel mi nem fogadjuk el ezt kész projectnek, hanem tovább akarjuk szerkeszteni. Be másolunk minden aktuális elemet a könyvtárba: Morse\examples\SOS\SOS.ino, morse.h, morse.cpp Így most már ha elindítjuk a: SOS.ino szerkesztését. Ott lesz egymás mellett mind a 3 fül, kijelölhetjük, amelyiket szerkeszteni akarjuk. Következőkben vázoltam még miket kel javítani: morse.h:
morse.cpp:
SOS.ino:
Mint látható, már fejleszthetjük is a projectünket. A hozzászólás módosítva: Aug 19, 2017
Folytatva az előző „Valaki csinált már több fájlos projectet?” témát.
Ha nem akarunk *.cpp alkalmazást írni! Akkor az előző alkalmazás valahogy így néz ki C-ben. morse.h
morse.c
SOS.ino
Üdvözlet!
Összeomlás előtt állok. A probléma az, hogy az Arduino Micro-m (ami kínai) nem úgy viselkedik, ahogyan szerintem kellene. Mégpedig a timerek játszadoznak velem. A példakód mutatja a hibát. A hiba a következő: Egymás után többször elindítom a timereket ugyanazzal a beállítással. Először le vannak nullázva, majd pedig indítva vannak. A timer0, a timer1 és a timer3. A timer4 nem játszik most. El is indulnak, megfelelő frekin, de a 0-ás timer rakoncátlan. Egyszer ilyen, másszor olyan fázisban indul el. Szkópon nézve látszik, ahogy véletlen szerűen fázist vált a timer az indításnál. A 16 bitesek helyesen indulnak, de a 8 bites nem. Márpedig ez nekem hibát okoz. Nano-nál, ha hasonló kódot használok, akkor semmi gond. (Azért írom, hogy hasonló, mert ott 2db 8bites és 1 db 16bites timer van.) Mi okozhatja a hibát? Nagyon kínai klónom van? Vagy hibás a kód? Köszönöm!
Szerk: A timer0 jelét nem tudom invertálni sem. Ha megpróbálom, akkor a kimeneten semmi jel sincsen. A hozzászólás módosítva: Aug 20, 2017
Nincs olyan hogy kínai klón csak az ATMEL bocsánat Microchip tud gyártani IC-t, nem az a baj hogy az arduino is elindítja a timer0 -át, ami a millis-hez kell?
Azért ilyen nagy értékű a delay() függvény, mert a timer az általam indított frekin megy és így gyorsabb.A frekvenciájával minden rendben. Csak míg a két 16bites timer jele oda van szögezve a szkóphoz, addig a 8bites timer némelyik indításnál fázist vált, véletlen szerűen. Ha a TCNT regiszterrel arrébb teszem a fázisát, az is jó marad. De 180 fokban akkor is játszik.
Nano viszont nem csinál ilyent, és a millis sem zavarja.
Helló!
Most sajna nem tudom ellenőrizni, de egy kódsorral megoldható, hogy karaktert, és változó értékét is kiírja a program?
Tehát az idézőjelekben a karaktereket írja ki, a "voltage" pedig egy változónak az értéke, azt kellene kiírni a két karakter közé. El lehet ezt valahogy intézni a kódban egy soron belül egy fügvénnyel? Vagy mindenképp csak külön lehet kiírni őket? A hozzászólás módosítva: Aug 20, 2017
A példa program csak akkor rossz, ha az Arduino tápon van és a PC-hez is csatlakozik USB-n. Ha kihúzom az USB-t, akkor helyreáll minden.
De az eredeti alkalmazásban továbbra is fönn áll a hiba. Előfordulhat, hogy az I2C busz használata tesz be neki? Ugyanis azon egy LCD lóg és az egyik busz lába az a timer0 másik kimenete. A hozzászólás módosítva: Aug 20, 2017
Szia!
Próbáld meg ezt: tft.print(string("U:") + string(voltage) +string( "V")); de nem értem miért jobb ez...
Csak azért, hogy egy sorban legyen a kódban...
Ok, de megy?
Hát nem igazán.
Azt mondja hogy a string nincs deklarálva...
Ha beszúrok egy deklarációt.:
Akkor meg azt mondja, hogy.:
Csináld így:
tft.print(String("U:") + String(voltage) +String( "V"));
Szerintem hiányzik a string.h
Be kell include-olni, ha minden igaz.
Ezt így elfogadja (semmit nem kell include-olni, elég a nagy kezdőbetű).
Viszont nagyon zabáll, ha nincs benne ez a sor, 73% programméretnél tartok. Ha beteszem ezt az egy sort 96% -ra ugrik a programméret. Azt hiszem, mégis hanyagolom ezt a fajta kiírást... A hozzászólás módosítva: Aug 20, 2017
Szerintem belefordul a string.h mert használod, csak automatikusan.
Ha ragaszkodsz az egy sorba íráshoz esetleg megpróbálhatsz egy kis függvényt összehozni, beteszed a kódodba és meghívod, de olyat ami nem használ további libet mint Pl stdlib.h.
Sziasztok!
Szóval még mindig ott tartok, hogy van egy csomó Attiny24-em Mielőtt nyákot gyártanék, egy gyors kérdés: A TinyWire lib miért nem támogatja alapból az Attiny24-et? Az adatlapot böngészve nem találok lényeges eltérést az USI résznél, de lehet, hogy valami felett elsiklottam. A képen látható módosítással lefordul ennek a kódnak a lebutított változatával (érintős részt kivettem belőle).
Helló! Véletlenül nincs meg valakinek a 60 napos ardu tanfolyam első tíz fejezete?
És ha lehet az 54-60 részek is kellenének. Küldje el valaki legyen szíves... A hozzászólás módosítva: Aug 21, 2017
|
Bejelentkezés
Hirdetés |