Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Kovidivi már válaszolt, azt próbáltad? Meg azt kéne kipróbálni, hogy másik programmal is csinálja-e, nem e a program miatt van. Nincs másik arduinód otthon kipróbálni azzal?
Utána én is írtam neki de még nem kaptam választ.
Én a tápot usb-n keresztül oldottam meg veszek majd szerelhető csatlakozót akkor megtudom a tápcsatlakozónál táplálni van egy ipari 12v tápom ami a ledeknek van az jó lehet? Sajnos nincs itthon plusz még egy arduinom és másik programot se tudok rá tenni mivel ez egy akvárium vezérlés és ha nem működne gondot okozna a növényeknek... Tettem az usb-re egy ferrit gyűrűt azóta nem láttam, hogy újra indulna de ez nem azt jelenti hogy megoldódott mivel random jellegű az újraindulás Nem lehet valahogy naplózni ezt a dolgot?
Az a helyzet , hogy nem ismerem a teljes programod működését, de ha a neten található példaprogramokból indultál ki: azok általában sorvégjelig olvasnak egy blokkot majd feldolgozzák.
Az én programom viszont nem csak sorvégnél áll meg a blokk olvasásával , hanem ?-jelnél, & jelnél és szóköznél is. Így egyszerre mindíg csak 1db változó jön be, és szépen sorban fel lehet dolgozni. A másik lehetőség, ha a stringben megkeresed strchr()-el ezeket a karaktereket, megjegyzed a címüket egy tömbben, majd nullát teszel a helyükre - és ezzel feldaraboltad a stringet. Ez utóbbi kicsit gyorsabb megoldás, de sokkal nagyobb memóriaigénye van, mert az összes változónak egyszerre el kellene férnie a bufferben, és megvalósítani is nehezebb. Így én inkább az első megoldást választottam.
Én is utánaolvastam, de akárhová állítom ezt a ClockDivider-t, nincs lényegi változás a webszerver sebességében. Erős a gyanúm, hogy a w5100 a korlát. De ha sikerül, majd átírom wifi modulra a webszervert, és meglátjuk az mennyire lesz gyors - viszont ennek leghamarabb majd csak augusztusban tudok nekiállni.
Én úgy szoktam, hogy ha 12v-o a táp, akkor elé teszek egy 7809-est, mert tönkre menni nem fog, de nagyon forró lesz a beépített stabilizátor... Tudod naplózni, a setup-ban írj az eepromba, és látni fogod, ha a beírt értéket látod, akkor újraindult. De még jobb, ha:
mert így azt is látni fogod, hogy hányszor indult újra...
Köszi, és az első variációt hogyan tudom megcsinálni? A wifi szerintem nem lesz gyorsabb, mert ott meg a wifi lesz a korlát, nem az arduino és shield közti kapcsolat...
Helló Mindenki! Vettem egy arduino nano-t az ebay-en, de nem ismeri fel a windows. az arduino honlapján találtam egy fórumot, ahol egy CDM20824... exével javítottak ilyen problémát, de nálam ez sem jött be. Van más megoldás? Hol találok drivert a nano-hoz?
(MINI USB Nano V3.0 ATmega328P CH340G 5V 16M Micro-controller board Arduino)
Mit nem tudok én, vagy mit nem tud az arduino fejlesztő környezet?
Szeretnék egy olyan dolgot létrehozni, hogy a főprogramban van vagy nincs egy #define, és egy #include-ban ettől függően #include-ol valami mást. Konkrétabban:
A TFTLCD.cpp-ben meg a következő van:
Egyszerűen nem vesz tudomást arról, hogy van egy "#define HUFONT". Ha kikommentezéssel csinálom, hogy egyik vagy másik karakter tábla töltődjön be, akkor természetesen a program jól működik. Ugyan ilyen megoldás a PIC-hez való gyári MPLABX fejlesztő környezetben remekül működik. Nem vagyok annyira otthon a C-ben, hogy ez sztenderd megoldás-e, és mindenütt illene működnie, esetleg mit kéne másképp csinálnom az Arduino környezetben?
Ahhoz, hogy válaszolni tudjak ismernem kellene a jelenlegi programban levő megoldást. Neked pedig ismerned kellene a jelenlegi programod ezen részének a működését, hogy át tudd írni. Ha te írtad meg, akkor ez nem lesz gond. Ha a netről szerezted be, akkor alaposan át kell rágnod, hogy minden részletének megértsd a működését, ezt viszont senki nem tudja megtenni helyetted. A működés megértésében gondolom többen is tudunk segíteni, de ahhoz konkrét kérdéseket kellene tudnod feltenni. Ha csak általánosságban rákérdezel a működésre, akkor a válasz is csak általánosságokból fog állni.
Tehát a kérdésedre mégegyszer: valószinűleg most a böngészőből bejövő adatokat, blokkonként olvassa a programod, és egy-egy blokk sorvégjelig tart (de persze ezt csak feltételezni tudom mivel a forrást nem láttam). Ezt át kellene írnod úgy, hogy a blokk végét ne csak a sorvégjelek határozzák meg, hanem a szóköz, & ,? is. Igy pl. válozónév=érték formában fog egy változót tartalmazni a blokk. A következő változó pedig új blokkba kerül.
Én ezt töltöttem le: CH341SER.exe
Köszi! Működik
Itt van a jelenlegi forrásom, ha megkérlek rákukkantanál?
Sziasztok! Egy kis problémába ütköztem: az ntp szerverről származó időt a setSyncProvider()-rel állítom be az arduinón, ennek az alapértelmezett intervalluma 5 perc, azt tudom, hogy ezt lehet állítani, de hogyan lehet kikapcsolni, hogy csak egyszer csinálja meg, amikor meghívom a függvényt? Előre is köszi!
Az alábbi részben van megadva, hogy meddig olvasson egy bejövő sort (blokkot).
Ezt a feltételt kellene elvileg kiegészíteni, hogy a többi elválasztó karakterre is leálljon. Ezzel csak az a gond, hogy a módosítás a szerver többi részének a működését is érinteni fogja, ennélfogva sokmindent kellene újra vagy átírni benne. Egy az interneten sokfelé fellelhető példaprogramból indultál ki, és azt írtad tovább, anélkül, hogy a működését teljesen megértetted volna. Ha rendes webszervert akarsz csinálni, akkor szerintem uj alapokra kellene helyezni. Ez a sok egymásba ágyazott feltétel egy cikluson belül egy bizonyos határ felett nehezen áttekinthető és még nehezebben bővíthető. Nekem az egész működés kicsit más logikára épül. - Van egy függvényem ami minden híváskor egyetlen blokkot olvas be a bufferbe (sorvégjelig, vagy &,?, szóköz karakterig, vagy az adatok elfogyásáig.) a visszatérési érték jelzi, hogy van-e még adat a bufferben. Ezt a függvényt egy ciklusból hívja a webszerver amíg el nem fogynak a bejövő adatok. A cikluson belül a blokkos beolvasás miatt mindig csak egyetlen adatot kell feldolgozni. Itt lementem a kért fájlnevet egy változóba, és feldolgozom a bejövő változókat. A ciklus vége után lehet választ küldeni. A mentett fájlnév.kiterjesztés alapján eldöntöm milyen fejlécet kell visszaküldeni. Ha elment a feljéc utána megy a kivánt fájl. Ezeket a részfeladatokat pedig külön függvényekre bízom. Így sokkal áttekinthetőbb az egész. A te megoldásodban minden egyetlen ciklusba van beépítve, ezért bonyolultabb feltételeket kell megfogalmazni, és nehezebben érthető a működése. Nem mondom, hogy nem lehetne átírni hogy jól kezelje az összes bejövő változót, de valószinűleg egyszerűbb lenne egy áttekinthetőbb és könnyebben érthető megoldást felépíteni. Persze ez nem kevés munka és idő, nekem is sok napom ment el erre, rengeteg tanulással és utánolvasással. Szóval sajnos a forrásodra nem tudok adni olyan receptet, hogy: ezen a 3 helyen átírod és már jó is, ezen még sokat kel dolgozni.
Értem, köszi, ha esetleg nem szertném átírni, úgy nem lehetne megoldani, mint a tisztít()-ban, hogy megy végig a bufferen, és ha olyan változónevet talál, amit megadtam a függvény meghívásánál, akkor az = jel utáni adatokat a & jelig egy változóba pakolja?
Meg lehet csinálni úgy is. Az a kérdés, hogy a bufferben mindíg elfér az összes változód neve és értéke egyszerre? Ha igen akor lehet olyan függvényt írni, ami megkeresi az adott változót a bufferben, és az értékét egy másik változóba berakja.
Nagyjából igy:
- strstr()-el megkeresed a változónevet - ha a visszaadott érték nem NULL akkor ezt a pointert adod az strchr()-nek amivel megkeresed a legközelebbi = jelet- - ha az strchr() visszaadott értéke nem NULL, akkor a pointert növeled eggyel, és innentől kezdve másolod a byteokat addig amig & jelet, szóközt, vagy nullát nem kapsz. - a másolás céljául megadott tömb-be az utolsó karakter után kell egy nullát tenni. Ezzel a változó meg is van, lehet konvertálni ha szükséges, pl. atoi()-val vagy mással Ha sok változód van a webfelületen, akkor a sok keresés miatt lelassulhat. A feladatot kissé másképp is meg lehet oldani. Pl. a bufferben az elválasztó karaktereket keresed meg (az = jelet is beleértve az előzőeken kívül) és a köztes részekben simán strcmp-vel nézed meg az adott változót, hogy létezik-e. utána ugyanaz, mint az előbb: = jel keresés, másolás, stb... A hozzászólás módosítva: Júl 17, 2015
Még nem, milyen kondi legyen kerámia vagy elektrolit? És muszáj schottky dióda? sima 1a-es nem jó?
Máris elakadtam, eddig itt tartok, most hogyan kéne folytatni, mert nem működik, csak a pointerig.
Na eddig is eljutottam, de még mindíg nem értem, hogyan tudom a buff2-től egy változóba tenni.
A hozzászólás módosítva: Júl 17, 2015
3V-os rendszerben célszerűbb egy pici schottky pl. BAT46 vagy valami SMD tipus. A kondi mindegy, az értékével lehet játszani, hogy meddig tartsa a resetet.
Köszi, ki fogom próbálni a resetet, a keresés nem akar menni, nem jön vissza semmi a dest-ből, vagy lehet, hogy én vagyok béna?
A hiba fele megvan, most hogy figyelmesen átolvbastam, a while-ban a != de most is csak tele írja a képernyőt krix krax betűkkel.
Hát amit küldtél, csak a while-nál átírtam.
Idézet: „- Segítség, jöjjenek gyorsan! - Honnan telefonál? - Hát innen a telefonfülkéből! - És hol van az a fülke? - Hát az utca sarkon. - ....” A kód amit beraktam: módosítottad a ciklust, + eredetileg nem írt ki semmit, tehát még mást is átírtál. De tudod mit ne is tedd be a kódot - végülis többet tanulsz belőle, ha te találod ki, mi a gond.
Na szóval nem szeretnék senkivel összeveszni, a kód itt van:
Ez a jelenlegi, azt vettem észre hogy a while-t annyiszor csinálja ahányszor kell de a dest nek az értéke nem stimmel. És még egyszer bocsi!
Nem látom hol, és hogyan van a programban a kiírás, és azt sem látom mit írtál át benne.
|
Bejelentkezés
Hirdetés |