Forum: Mikrocontroller und Digitale Elektronik Wie läuft der Ladevorgang beim arduino ab.


von DAVID B. (bastler-david)


Lesenswert?

Hallo
Ich habe ein arduino mega 2560 mit ein ENC28J60 lan Chip.
DA die Webseite größer ist wie der ram des 2560 habe ich die Seite nicht 
im RAM gelegt sondern lasse sie im speicher mit
( client.print(F("...."));

Jetzt kommt aber die frage auf wenn der Chip sie Seite raus geben soll 
muss sie ja dennoch im RAM geladen werden,
Passiert das im ganzen oder in teilen ?
Also eine Zeile Code lesen im RAM kopieren senden und löschen dann 
nächste Zeile lesen kopieren senden und löschen ?

Ich habe vor der Übertragung sowie nach der Übertragung rund 70% des 
arbeitsspeicher des 2560 frei.
Jedenfalls wenn man client.print( freeRam()); glauben darf.

Wäre super wenn mir jemand kurz erklären könnte wie die Übertragung 
abläuft.
Vielen dank!

von Joachim B. (jar)


Lesenswert?

hier gibt es Lesestoff,
http://www.ethersex.de/index.php/Main_Page
ich setze einen ATmega1284p als Webserver ein, Pollin NETIO

von DAVID B. (bastler-david)


Lesenswert?

Bist mir aber nicht böse wenn ich sage das ich damit nicht viel anfangen 
kann ?

von kein Bastler (Gast)


Lesenswert?

DAVID -. schrieb:
> Wäre super wenn mir jemand kurz erklären könnte wie die Übertragung
> abläuft.

Du hast das Programm doch geschrieben. Oder etwa nicht? Bei Arduino 
kommt mir immer der Verdacht nach "Copy&Paste".

von DAVID B. (bastler-david)


Lesenswert?

Ja habe es geschrieben und selber angepasst ja ist richtig.
Ich weiß so vom groben aber nur das F dafür steht es im RAM zuspeichern.
Nicht aber ob alles gleichzeitig geladen wird oder der reihe nach.
(client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));
( client.print(F("...."));

Eigentlich alles der reihe nach aber ich bin mir nicht sicher und weil 
die Seite nach stunden oder tagen ausfehlt wollte ich mal diese 
Wissenslücke schlissen.

von Martin K. (maart)


Lesenswert?

Müsste es nicht server.print sein?

von Kolja (Gast)


Lesenswert?

DAVID -. schrieb:
> Nicht aber ob alles gleichzeitig geladen wird oder der reihe nach.

Das läßt sich mit ein klein wenig Nachdenken selbst beantworten.
Kann denn die Website auf einer seriellen Schnittstelle (wie es das 
Netzwerk nun mal ist) wirklich parallel ausgegeben werden?

von Stefan F. (Gast)


Lesenswert?

Nein, client.print() ist schon richtig. Das Server Objekt ist nur der 
Port-Listener, die Verbindung wird durch bis zu 5 Client Objekte 
repräsentiert.

Du musst die Seite Stückweise ausgeben, je größer die Stücke sind, um so 
besser die Performance. Aber größer als ein Ethernet Paket wäre wiederum 
schlecht. WLAn kann maximal 1460 Bytes am Stück, daran würde ich mich 
orientieren.

von DAVID B. (bastler-david)


Lesenswert?

Ok vielen dank euch!
und wenn ich wirklich sagen wir 1 KB am stück senden kann da kann ich da 
noch bissel anpassen habe es zur zeit so das möglichst kleine Daten 
Pakete gesendet werden davon aber sehr viele.
Ok vielen dank damit ist mir sehr geholfen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.