English  Deutsch
Biosolar Forum  =>  Mérésadatgyűjtés  =>  Arduinolapozz: « előző   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21   következő »
Mielőtt kérdezel olvasd el a témához tartozó KIEMELT CIKKEKET!
2014-01-13
14:21:51
Előzmény: grano #44943#44969
Ahogy Medig is írta, a lokális nem volatile változók először a regiszterekbe kerülnek, ha az betelt, vagy a mérete miatt nem fér bele, akkor az sram.ba (stack).
Ha a változó az sramba kényszerül, akkor az futás közben lesz létrehozva és a függvényből való kilépéskor eldobva.

T.
villam64Válasz erre
2014-01-13
13:43:34
Előzmény: medig #44964#44965
Anno a gépeken, ha változót deklaráltál, helyet foglalt a programban. Utólag nem kér helyet, hanem előre. Nem a változó foglal helyet, hanem a program fordítása. A gépi kód gyorsabb, és töredék helyet foglal. Anno kétféle basic fordítóval végeztettem el a fordítást, ugyan azon a programon. Nagyon eltérő végeredmények lettek, mind méretben, mind sebességben. Ha 1 byte-on elfér a változód, akkor az 1 byte-ot foglal a programban. Csak fordításkor kell neki, hogy a változóra hivatkozáskor hol keresse. Mely memoria rekeszre mutasson a cím.
2014-01-13
12:37:31
Előzmény: grano #44943#44964
grano:

szerintem:

- Hogy a forráskód soraival mi történjék a fordító dönti el...

- Ha van változó deklaráció, de nincs müvelet a változón, akkor az nyilvánvalóan nem kerül be a kódba*.

- Az mcu-k a müveleteket regisztereken végzik. AVR atmega 8 bites mcu-k esetében van 32 db 8-bites regiszter...

- A műveletek változóit ilyen regiszterekhez rendeli a fordító.

- pl. ha értékadás van, akkor azt egy vagy több assembly utasítással teszi meg, ami önmagában tartalmazza az értékadás konstansát, vagy pedig indirekt módon veszi... a változó virtuálisan a regiszterben létezik.

- Ha esetleg elfogynak a regiszterek az adott hatókörben** akkor az SRAM-ba kell kell allokálnia helyet, ahová átmenetileg el tudja menteni a regiszterek tartalmát. Ezt tulajdonképpen Veremnek, Stack-nek szokás hívni, és stack müveletekkel lehet kezelni...

- Ha olyan változót, vagy tömböt deklarálsz, ami volatile típusú- avagy globálisan bármelyi függvény számára elérhető-, akkor tuti, hogy az SRAM-ban kerül allokálásra...

*kód: amit a fordító előállít, és a programemóriába kerül.
**hatókör: pl. egy függvényen belül


"Ha pl deklarálok egy változót egy ciklusban, az már a letöltés után azonnal foglalja a memória területet, vagy csak a ciklus futása alatt?"

röviden:
- Ha használod a változó tartalmát valahol, illetőleg műveleteket végeztél rajta, akkor a program memóriát fogják növelni ezek a müveletek. (A változó, nem kell hogy memóriát foglaljon, mivel a regiszereken létezik csak.)
- Csak akkor foglal SRAM-ot, ha volatileként volt deklarálva.
2014-01-11
09:47:05
Előzmény: takyka #44457#44943
takyka:
olvasgatom ezt a memória kezeléses dolgot.
"Az a "gond", hogy az összes, a progiban használt stringet bemásolja a ramba"
Az lenne a kérdésem, hogy a lokális változók is így működnek?
Ha pl deklarálok egy változót egy ciklusban, az már a letöltés után azonnal foglalja a memória területet, vagy csak a ciklus futása alatt?
fusimisiVálasz erre
2014-01-10
23:46:12
#44938
Lehet találtam egy fontos infót - miért nem lehet feltölteni a kódot megán!
www.sainsmart.com/vanilla/discussion/comment/61

Example Code:
--------------
void setup() {
Serial.begin(9600);
}

void loop() {
//Serial.println ("update!!!");
Serial.println ("!!!");
delay (1000);
}
-------------
Upload errors:
avrdude: stk500v2_ReceiveMessage(): timeout

Nem célszerű 3 "!!!" felkiáltójelet alkalmazni!!!!
2014-01-09
09:22:43
Előzmény: Iseee #44790#44862
van egy free RAM nevu pelda az arduino oldalon, esetleg rakd bele a kodba, hogy neha kiirasd, mennyi is a szabad RAM, lehet ez trefal meg.
nehany sor es egy library az egesz.


2014-01-06
22:07:12
Előzmény: zsezse #44643#44790
Köszi, közben megírtam máshogy. De így egyszerűbb lett volna :( ha minden funkció megy amit elterveztem akkor átírom erre. Most éppen az email küldés nem akar menni... Ha csak email van benne akkor megy ha a komplett kód akkor már nem.

Megjött az SSR amit ajánlottál, szépen megy. 1 napja van benne de nem indult újra egyszer se a vezérlés. 1 hibája van a 75V alatt nem müxik...
"Load voltage range: 75 to 264VAC (50/60Hz)."
2014-01-02
22:35:27
Előzmény: Iseee #44640#44643
amit irtam az is azt csinalja

vegigmegy a POST parametereken es osszehasonlitja a megadott ertekekkel

2014-01-02
21:58:55
Előzmény: zsezse #44613#44640
Köszi, de a problémámat sajnos nem oldja meg.
De belenézek a webserver.h -ba
Én a POST-ból értéket szeretnék kinyerni. ami minden esetben más.

$_POST['nappalimin'] ; // 21.6
$_POST['nappalimax'] ; // 21.8
2014-01-02
10:47:04
Előzmény: zsezse #44611#44617
zsezse:
köszönet így stimmel:
ez az oldal zavart be:
www.jon00.me.uk/onewireintro.shtml
Itt ugyanis vannak illesztő eszközök.

A probléma megoldása egyúttal újabb kérdést vetett fel:
a +5V az Arduino-n keresztül, vagy külső tápból származik?
Ahogy nézegettem nem kéne terhelnem az arduinot, mert alig néhányszáz milliampert bír el a kivezetése, az I/O portok meg talán 40-et.
Tizen darab IC + kijelző már biztos sok lenne.

Van egy régi trafós tápom , amin stabIC-s 12V-os kimenet van, azt fel tudom használni ehhez?
2014-01-02
07:53:16
Előzmény: Iseee #44612#44613
pedig egyszeru
kodreszlet:

setup():
webserver.begin();
webserver.setDefaultCommand(&formCmd);
webserver.addCommand("", &formCmd);

void formCmd(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{ if (type == WebServer::POST)
{ bool repeat;
char name[16], value[16];
do
{
repeat = server.readPOSTparam(name, 20, value, 4); // a POST parameter nev maximalis hosszusaga!
float val = atof(value);
String param=String(name);
if (param.equals("a")){
aHomerseklet=val;
}

a peldaban levo kod lett atfaragva picit. a lelke a
"repeat = server.readPOSTparam(name, 20, value, 4);" sor!

egyebkent ez a pelda:
github.com/sirleech/Webduino/blob/master/examples/Web_Demo/Web_Demo.ino

ezt nezd meg, eleg egyertelmu. a json reszre nincs szukseged.
2014-01-01
22:32:38
Előzmény: zsezse #44611#44612
A POST kimenetet milyen módszerrel dolgozod fel?
Sajnos itt elakadtam.
Ahogy eddig csináltam: több form egy oldalon és mind onclick. De így sajnos megnő a méret.
De ha már értéket adok meg akkor így nem is lehet.
Egy form kellene de akkor a kimenetet nem sikerült feldolgozni....
Itt állok jelenleg. Minden kapcsoló megy , de hőfokot nem tudok változtatni...



2014-01-01
22:16:57
Előzmény: grano #44608#44611
kozvetlenul rakhatod ra, a +5V es az adat koze kell a 4.7k-s ellenallas
itt a pelda
www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html
ket library kell hozz, a onewire es a dallasos, ha nem akarsz kezzel hexa ertekeket konvertalgatni
amugy nezegettem, de nem lett kisebb a kod ugy sem, ha en szamoltam ki.

a webszerverhez a legjobb amit talaltam a Webduino, abban benne van minden kompletten, cserebe eleg sok ramot foglal sajnos.
en 3x sovanyitottam le a kodot, de most megint elertem a 32k-s limitet, ugyhogy ki kell dobjam a webduinot is es sajat protokollt kell irjak.

2014-01-01
22:08:06
Előzmény: grano #44608#44609
Google barátom kb 1mp-es kereséssel. Lásd a képet
......
Szépen lehet lapozgatni a kijelzőt, én is így csinálom itt megy előttem, Csatoltam pár képet régebben. Még pár dolog nem jött meg, ha ideér lecserélem a régi vezérlést. Sajnos a webserver még a megában is behatárolt. De szépen fut.
A POST feldolgozásával vagyok bajban jelenleg....




2014-01-01
21:47:54
Előzmény: fusimisi #44597#44608
fusisimi:
köszi.
Ha jól veszem ki az 1Wire érzékelők egy közös buszon ülnek, párhuzamosan, egyedi, 16bites azonosítóval.
Amit nem értek a busz hogyan csatlakozik az arduinohoz?
Közvetlenül egy digitális lábon kereszetül (4,7K-s felhúzóellenállásal), vagy USB-s interfészen kerezstül?
fusimisiVálasz erre
2014-01-01
16:27:06
Előzmény: grano #44595#44597
www.playground.arduino.cc/Learning/OneWire arduinos dolgok itt találhatók
fusimisiVálasz erre
2013-12-30
17:26:35
Előzmény: grano #44568#44569
A DS18B20-at 1Wire módon fel lehet fűzni és 1 portról beolvashatod az összeset. Mindnek egyedi címe van amit a gyárba beégettek. A példák között van egy jó progi ami leolvassa mindet - olyasmi mint az i2c scanner.
2013-12-30
13:50:55
Előzmény: grano #44561#44564
Szia,

Ennyit ne akarj multiplexelni, mert nem fogsz látni semmit a kijelzőn. (a led csak 1/multiplexek száma ideig világít) Vagy annyi 595 kell, ahány hétszegmenses kijelzőt akarsz használni.

Ha ragaszkodsz arduinohoz, válassz egy megát és akassz rá egy grafikus LCD-t.
pl. egy ilyenre kiférne:T.
2013-12-30
13:18:37
Előzmény: grano #44561#44562
grano,

"... Most így leírva, elég borzasztó, mert rengeteg multiplexet kell(?) megoldanom, hogy egyáltalán bemenjen minden adat. Utána még ki is kell hoznom..."

Az nem fordult meg a fejedben, hogy a feladatnak megfelelő kapacitású eszközzel próbálkozzál?
Ha ragaszkodsz az Arduino-hoz, akkor a kijelzőt lapozgatni is lehetne.

2013-12-30
13:02:03
Előzmény: szocsmarci #44552#44561
szocsmarci:
egyetlen bajom van csak vele: 1 hónapra van innen.
Nagyon franko az ebay, de győzd kivárni.

Taviron egy ethernet shield 8500 jövő héten itt van, ebayon nincs 2.000 de jó ha januárban megérkezik.
Mivel a thermométerek helyére mennek majd a senzorok, kell minimum 7 sornyi kijelző is. De inkább 10, mert kell egy belsőhőmérséklet, egy külső hőmérséklet, egy a tömegáramhoz, egy a fűtési teljesítményhez.
Bocs, ez már 11.
Ennyit LCD-t asszem a mega sem bírna el.

Most így leírva, elég borzasztó, mert rengeteg multiplexet kell(?) megoldanom, hogy egyáltalán bemenjen minden adat. Utána még ki is kell hoznom.


szocsmarciVálasz erre
2013-12-29
12:17:50
Előzmény: grano #44545#44552
Ezen is van potméter.
Csak 300 Ft a komplett szerkezet, cserébe nem kell kábelrengeteggel vesződnöd. Miért kell bonyolítani a dolgokat szándékosan, amikor azok saját magukat is bonyolítják? :)



2013-12-28
17:36:04
Előzmény: PetiG #44543#44545
Petig:
összejött, KÖSZI!!
1,88K-nál 4X220 +1K.
2013-12-28
17:06:02
Előzmény: grano #44540#44543
Akkor 1kiloohm-nál kevesebb kell bele.
2013-12-28
14:34:22
Előzmény: PetiG #44537#44540
PetigG:
De sajnos kelleni fog. Alig lehet látni. 2-3K között sejtem valahol a jó értéket, de alig olvasható a Hello World felirat.
Kipróbáltam 1,2,3,4, K-val is, de 4-nél már semmi sem látszott.
Kajtattam itthon hátha van még régről, de már semmim sincs.
2013-12-28
12:47:47
Előzmény: grano #44534#44537
Mondom nem kell poti.
Biosolar Forum  =>  Mérésadatgyűjtés  =>  Arduinolapozz: « előző   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21   következő »
Copyright © 2005-2017 Bernáth Róbert
Minden jog fenntartva