Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Nah, valami itt nagyon nem stimmel, mert ha a tisztit elé, és után is teszek egy Serial.write(clientline)-t, akkor ez lesz:
Idézet: „EEzz mmoosstt eeggyy %EEDD bbeettûû” Az egész összemosódik... Ha csak az előtte lévőt iratom, akkor szépen ugyan az visszajön, amit beírtam, ha csak az utánalévőt, akkor meg szintén ugyan az, csak a %-jel eltűnik belőle. Viszont ha a c string értékét nem olvasom, hanem megadom, akkor tökéletesen működik, ez most akkor mi?
Akkor már tudom mi történik:
Azt írod a kódban:
Azaz addig fut amig van elérhető karakter, azonban az ardunio sokkal gyorsabb mint ahogy gépelsz. Tehát lenyomsz egy gombot, elküldi, feldolgozza, és mire nyomnád a következőt, már rég elfogytak az adatok, azaz a programod betünként meghívja a függvényt, és a tömbödben mindig csak egyetlen betű van. Ha átírnád úgy hogy mondjuk enter-ig ('\r' || '\n') olvassa a soros portot (ne álljon le a ciklus ha kifogy az adat, csak ha entert nyomsz), akkor valószínüleg működni fog. A hozzászólás módosítva: Júl 13, 2015
Szóval valahogy így:
A hozzászólás módosítva: Júl 13, 2015
Köszi, valóban ez volt a hiba, most már megy a webszerveren is tökéletesen... Még egy kérdés, tudom már kérdeztem, de nem igazán kaptam megfelelő választ: a weboldal beállításaitól érkező adatokat tehát pl.: ip=192.168.0.50&mac=AD-DE..., hogyan olvasod ki a c stringből? mert én az strstr-t használom, de ugye az csak konkrét szöveget tud olvasni, azt nem tudom vele megcsinálni, hogy a következő & jelig olvasson...
A hozzászólás módosítva: Júl 13, 2015
String darabolás:
Splitting a String
Szia! Ha megkérlek egy kicsit még segítenél ebben? Illetve egyszerüsítettem a progin, és felemrült még egy probléma: a hitelesítésnél a random számokat egy unsigned int-es tömbben tárolom, az strstr-nél meg const char* nak kell lennie, és sehogyan nem akar összejönni a konvertálás.
Nézegesd az atoi() függvényt, ez karakterláncból (C stringből) csinál int változót. Az itoa() ennek a fordítottja (ha meg van valósítva) , de a sprintf() is kényelmesen használható.
Amit ITT kérdeztem azzal mi a helyzet? A hozzászólás módosítva: Júl 14, 2015
Sziasztok!
Egy kis segítséget szeretnénk kérni. Lenne egy Arduinom amire írtunk egy programot és csináltunk neki egy nyáklapot pwm szabályzás illetve pár relét működtett. Olyan problémába ütköztünk, hogy az Arduino gondol egyet és újra indul (világítás van rákötve és egy pillanatra elalszik és utána ki is gyullad) nagyon zavaró. Sajnos random jellegű és nem tudom semmihez kötni. Valakinek esetleg valami ötlete? Köszönettel Laci
Rakj kondenzátort az Arduino táplábához, 1000uF+100nF-ot, a Reset láb elvileg fent van tápon, ha rendes Arduino nyákod van. Vagy készítettetek magához az IC-hez új nyákot, minden körítés nélkül? Mert ha lemaradt a reset-ről a felhúzó ellenállás, az csinálhat ilyet, főleg zajos környezetben.
Perifériákat hogy választottad le , hogy hajtod meg?
Hosszú drótok a portokon?
Az ethernet libbel az volt, hogy akármilyen libet töltöttem le netről, nem ment due-n, hibát nem írt, csak nem működött. A végén az lett a megoldás, hogy a manage libraries-re ha rákattintasz, onnan töltsd le az ethernet libet, ott írja is, hogy due kompatibilis, viszont ha due-re fordítod le az hibát ír, annyit kell csinálni, hogy most nem emlékszem melyik fájlra írta a hibát, asszem a w5100.cpp-re abban be kell tenni, hogy int SPI_CS=10; ez hiányzik belőle, ezután tökéletes. Ne kérdezd, nem tudom, hogy a gyári lib hogyan lehet hibás...
Köszi, az itoa tökéletesen működik, már csak az adatok olvasásában kérném a segtséget.
Megérkezett a DUE. Szépen lefordul rá a program aztán néhány file olvasás után lefagy. A gyári SD lib kompatibilis ezzel a lappal? Vagy selejtet kaptam?
Nem, ez kell hozzá!
Extra szívás van:
webserver.ino:45:19: fatal error: w5100.h: No such file or directory compilation terminated. Hiba a fordítás során. A fájlt már mindenhová odamásoltam, újratelepítettem az arduinot, és maradt a hibaüzenet. MEGA-ra sem fordítja le a kódot, és semmire sem. Nem tudom hol tárolhat még hibás beállítást.
Ha nem csak bemásolgatsz, hanem követed az utasításokat, akkor jó lesz:
Installing Additional Arduino Libraries És közben a Due legyen kiválasztva boardnak. Ne csüggedj előszörre én is töröltem pár szór.
Én is sokat szenvedtem vele, a program files-ban, és a dokumentumokban sincs már benne? Én a programból töltöttem le az ethernet libet, mint már írtam. Az mitől lehet, hogy megcsináltam a webszervert, hogy programindulásnál letölti az ntp időt, de ha bedugom, nem jön idő, ha rányomok egy resetet, akkor meg jó lesz, elsőre sosem jó.
A hozzászólás módosítva: Júl 15, 2015
Ujratelepítettem. Most lefordul a program. MEGA-val megy, a DUE-n lefagy.
Melyik lib-ek helyett kellene másikat telepítenem? Jelenleg ezek vannak includolva programban: #include <SPI.h> #include <SD.h> #include <Ethernet.h>
Én az ethernetet és az sd-t cseréltem. Az sd-t arra, amit átküldtem, az ethernetet pedig letöltöttem a library managerből.
kapu48 neked is van due-d?
Csatoltam a nyáklapot ez csak egy teszt nyáklapnak készült kijelzővel ami már lekerült róla.
A hozzászólás módosítva: Júl 15, 2015
Igen van due-m. csak az én ETH-em enc28j60D chipes. És csak ½ kész dues libet találtam hozzá!
Egyelőre szívok vele! De ha nektek bejön a W5100-5200-as beszerzek én is olyat. fkx! Ne keverd a két rendszert, mert még a Dues libek nagy része csak Béta verziós. A Due-hoz keres új libeket, amiket már teszteltek vele.
Csak azért kérdezem, mert azt vettem észre, hogy azt csinálja a due, hogy ha bedugom, nem indul el a progi, csak ha nyomok egy resetet, vagy gyorsan kihúzom, bedugom. Próbáltam, még a sima blink program is ezt csinálja. Ezt eddig nem vettem észre, mert ahogy csináltam a webszervert mindig nyitottam soros monitort, és ott ugye autómatikusan reset... Ez mitől lehet?
Ne keverd a két rendszert, mert még a Dues libek nagy része csak Béta verziós.
A Due-hoz keres új libeket, amiket már teszteltek vele. A régi hasonló nevű : #include <SPI.h> #include <SD.h> #include <Ethernet.h> Rontsd el, mert azok még nincsenek felkészít a due kezelésére. És ha kiabál fordításnál meg tudod nézni mit akar használni
Programozás idejéig lekel kapcsolni a terminál.
Tegyél várakozást: while (Serial.read() <= 0) {} delay(200); // Catch Due reset problem És nem fog resetelni.
Nem az a gond, hogy magátol resetel, hanem, hogy nem indul el a program.
Setup elején várakozz keveset lehet, hogy az ETH kártya vagy LCD-k szoktak lassabban feléledni.
Ezt a késleltetést AVR-nél HW-ből is be lehetett állítani. A Samot még nem ismerem elégé.
Nem jó így sem, de ha nincs ethernet, lcd, semmi csak egy siam blink program, akkor is ezt csinálja.
Túlterhelik a LED-ek?
Ez csak 3.3V rendszer. A régi 5V ilesztés nem jó! Rá engedtél 5V-ot? A hozzászólás módosítva: Júl 15, 2015
A 13-as beépített ledet villogtatom a sima example blink progival. De az összes programnál ez van. Neked nem csinálja? De ha 5 mp-en belül kihúzom, visszadugom akkor nem csinálja, csak ha hoszabb ideig van kihúzva az áram.
|
Bejelentkezés
Hirdetés |