Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   82 / 852
(#) Koleus válasza erdeidominik1999 hozzászólására (») Feb 3, 2015 /
 
Szerintem nem hülyeség, valószínű megtellik a SRAM. Optimizálni kellene a kódod, amennyire csak lehet, konstansokat, szövegeket a Flash memóriába tenni (PROGMEM), minimalizálni a globális változók számát, stb. Itt egy Bővebben: Link, hátha segít. Na meg még egy Bővebben: Link
A hozzászólás módosítva: Feb 3, 2015
(#) Kovidivi válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Én is erre gondoltam. Van rá példakód, ami kiírja, mennyi SRAM-od maradt. Gyorsan el tud fogyni az 1K. Bővebben: Link
A hozzászólás módosítva: Feb 4, 2015
(#) erdeidominik1999 válasza Kovidivi hozzászólására (») Feb 4, 2015 /
 
Köszi a választ! És ezzel mit tudok csinálni?
(#) erdeidominik1999 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Ja és azt elfelejtettem, hogy megára van rakva az ethernet shield, annak nem nagyobb az sram-ja?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
A megának 8k az sram-ja. Leírásodból azonban látszik, hogy használsz SD kártyát (kb. 1k csak az, hogy betöltöd a könyvtárat), ethernet shieldet webszerverrel (még egy csomó). Emellett, ki tudja milyen minőségű a kódod. Nem olyan sok az a 8k.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Ha esetleg felteszem a progit, rákukkantasz?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Egye fene.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Nagyon szépen köszönöm!
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Egyértelműen elfogyott az SRAM-od. Nincs meg a Time.h nekem, ezért kikommenteztem azokat a részeket, ahol hivatkozott rá és még így is nagyon kevés maradt.

Már korábban írtam itt a fórumon másoknak, hogy sok szöveg esetén használják az F() makrót. Minden szöveg, amit anélkül beírsz (pl. a Serial.println-hez) eszi az SRAM-ot teljesen feleslegesen.

Írd át a stringeket így:
régi: client.println("<form method=get><input name=a maxlength=4 style=width:45px; value=");
új: client.println(F("<form method=get><input name=a maxlength=4 style=width:45px; value="));

Nézd meg így működik-e.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Nagyon köszönöm, meg fogom nézni!
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Működik, nagyon sokat segítettél!
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Szívesen.
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Még egy olyan kérdésem lenne, hogy ez lcd.print-nél is igaz, hogy így csináljam?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Mindenhol, ahol nem vár valódi változót (ki fog derülni, mert hibát ad a fordító).
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Köszi!
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Még valami. Ha többször akarsz használni egy string-et, akkor persze nem ez a jó megoldás. Itt egy példa mit lehet ilyenkor csinálni:

  1. // Headers
  2. #define HDR_MAIN                        0
  3. #define HDR_MENU                        1
  4. #define HDR_CONFIG                      2
  5. #define HDR_ABOUT                       3
  6.  
  7. const char HDR_TXT_MAIN[] PROGMEM = "Dual split power supply";
  8. const char HDR_TXT_MENU[] PROGMEM = "Main menu";
  9. const char HDR_TXT_CONFIG[] PROGMEM = "Configuration";
  10. const char HDR_TXT_ABOUT[] PROGMEM = "About DualSupply";
  11.  
  12. static const char* headerTexts[] PROGMEM = {
  13.         HDR_TXT_MAIN,
  14.         HDR_TXT_MENU,
  15.         HDR_TXT_CONFIG,
  16.         HDR_TXT_ABOUT
  17. };
  18.  
  19.  
  20. void _drawHeader(int header)
  21. {
  22.         char _buffer[30];    // String buffer
  23.         _tft.fillRect(0,0,_tft.width(),4+2*8,ILI9340_BLUE);
  24.         _tft.setTextColor(ILI9340_WHITE,ILI9340_BLUE);
  25.         _tft.setTextSize(2);
  26.         strcpy_P(_buffer, (char*)pgm_read_word(&(headerTexts[header])));
  27.         _tft.setCursor((_tft.width()-(strlen(_buffer)*6*2)) / 2, 2);
  28.         _tft.println(_buffer);
  29. }
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Köszi, még egy problémába ütköztem: ha sd kártyáról olvasok be egy szkriptet, akkor tökéletesen működik, viszont ha a programba írok egy szkriptet, akkor a program a feltöltésnél megáll. Ez miért van?
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Hát ennyiből meg nem mondom...
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
Azt szeretném megcsinálni, hogy mielőtt bezárom a lapot jön egy figyelmeztetőablak, ez sd-ről tök jól működik is. Itt van a szkript:
<script>
function myFunction() {
return "Biztosan bezarod?";
}
</script>
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Nézd meg mi a különbség a generált források között (böngésződben jobb klikk, oldal forrása vagy vmi hasonló).
(#) erdeidominik1999 válasza csatti2 hozzászólására (») Feb 4, 2015 /
 
De nem az a baj, hogy nem működik, hanem az, hogy nem tudom feltölteni az arduinora, mert a feltöltés egyszerűen megáll, ha ez benne van.
(#) csatti2 válasza erdeidominik1999 hozzászólására (») Feb 4, 2015 /
 
Akkor passz. Én még nem csináltam webszervert arduino-ra.
(#) Gabó hozzászólása Feb 5, 2015 /
 
Van egy ilyen ethernet shieldem, és egy arduino mega 2560am. Ugye ezeket egymásra lehet tolni, és úgy csatlakozik. Ha én nem így szeretném csatlakoztatni, hanem pl vezetékkel összekötni a két egységet, az vezethet valami hibához? Pl adatelérés, vagy hasonlók? Nem nagyon nagy távra lenne tőle, kb 20-30cm vezeték lenne.
(#) erdeidominik1999 válasza Gabó hozzászólására (») Feb 5, 2015 /
 
Elvileg az még nem gond.
(#) andykaaa hozzászólása Feb 6, 2015 /
 
Az Atmega328 -nal, az egesz analog labat lehet hasznalni digitalnak, A0-A5 (A7) ?
(#) csatti2 válasza andykaaa hozzászólására (») Feb 6, 2015 /
 
Igen. Ráadásul az A4 és A5 lábakon valósítható meg a hardveres I2C busz is.
(#) erdeidominik1999 hozzászólása Feb 7, 2015 /
 
Sziasztok! Megint webszerver-es kérdésem lenne. Az a gondom, hogy az oldalra be van állítva autófrissítés, mert digitalRead-es értékek is vannak rajta, de ugyanakkor vannak rajta gombok is, és ha megnyomok egy gombot, akkor ugye elküldi get-tel a szervernek, de a frissítésnél újra elküldi, hogyan tudnám azt megcsinálni, hogy az url-ből eltünjön a a get-tel küldött adat, és újra csak az ip legyen? Előre is köszi!
A hozzászólás módosítva: Feb 7, 2015
(#) proba válasza erdeidominik1999 hozzászólására (») Feb 7, 2015 / 1
 
Nem tudom jó-e, a fő weblapot több részre osztani, a frissítendő adatokat egy lapra, a többit meg másikra. Az auto frissítést csak a ténylegesen érintett laprészre bekapcsolni.
A hozzászólás módosítva: Feb 7, 2015
(#) rmis válasza erdeidominik1999 hozzászólására (») Feb 8, 2015 /
 
Szia!

Én úgy csinálom, hogy a GET után stringeket küldök (gondolom Te is) és a küldés után közvetlenül a stringek tartalmát lenullázom (kb. xxx_string="". Ilyenkor hiába frissít, mert már az üres stringet küldi, tehát nem küld semmit.
(#) rmis válasza GPeti1977 hozzászólására (») Feb 8, 2015 /
 
Szia, bocs hogy csak most válaszolok, de az arduino alapú webszerver teljesen stabilan tud működni. Készítettem egy céges webszervert, (nem kis cégnek), viszont voltak kezdetben stabilitási problémák. Mára sikerült nagyjából megoldani, de mivel is lehet követni a stabilitást?

-minden oldalgeneráláskor növelek eggyel egy számlálót
-nézem, hogy mióta van bekapcsolva az áramkör (Mega)
-minden setup lefuttatáskor egy EEPROM területet (100-as) növelek eggyel, így látom, hogy hányszor lett lekapcsolva

-mindezt ki is iratom a weblap alján, statisztikaként

Jelen állás:
-oldalgenerálás: 179536
-futásidő: 30939 min
-oldalgenerálási idő: 190 ms

Szerintem atomstabil. (30939 perce programozás miatt volt frissítés)
Következő: »»   82 / 852
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem