Forum: Projekte & Code Webserver ATmega32/644DIP ENC28J60


von Steffen (Gast)


Lesenswert?

>So die letzte Version für heute!

Puhh..Dann hat man vielleicht mal genug Zeit um seine eigenen 
Erweiterungen auf die aktuelle Version anzupassen...ich arbeite noch mit 
einem mix aus v4, v8 und eigenen Anpassungen.

@Ulrich
Da ich noch mit einem m32 arbeite und momentan keinen Wert auf die 
Authentifizierung lege, habe ich alles was dazu gehört raus gelöscht 
(und es hat noch funktioniert :-). Könntest du die Authentifizierung in
1
#ifdef ENABLE_AUTH
oder so ähnlich kapseln? Dann kann man das sehr schnell und einfach ein 
und ausschalten und spart noch ein wenig Programmspeicher.

Wenn nicht. Geht die Welt auch nicht unter.
:-)
Steffen.

von E. M. (hias)


Lesenswert?

Hallo

@Steffen:
Du hast bestimmt eine alte Version der config.h
in der aktuellen steht:
#define HTTP_AUTH_DEFAULT  0

MfG Hias

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

In der letzten Version treten wieder Fehler auf je nachdem ob ich per IP 
oder Domainnamen zugreife, bei der IP lädt der Firefox wieder endlos. 
Bin da jetzt schon endlos dran an den Werten MTU_SIZE und 
MTU_SIZE-(TCP_DATA_START)-100 rum zu testen.

Gibt es eine Einstellung die auch mit IP z.B. 192.168.178.99 und 
Domainnamen wie z.B. heldt-intern.dyndns.org funktioniert?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Ich werde nochmal meine Änderungen in die 1.10 komplett neu einbauen, an 
irgendwas muss es ja liegen. Dein Server läuft von hier aus gut.

Wenn Du den Firefox und IE hast kannst Du ja mal auf meinen zugreifen ob 
der Firefox das laden der Seite beendet:

http://heldt-intern.dyndns.org:81/

User: admin
PW: demo

Ich habe jetzt die original 1.10 drauf und über Domainnamen geht es über 
IP lädt die Seite endlos :(

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hier zum spielen!!

http://ulrichradig.dyndns.org

User:     admin
Passwort: uli1

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Jetzt scheint es zu gehen MTU_SIZE=1500, drunter gab es bei mir immer 
Probleme. Jetzt teste ich mal wie stabil er läuft ;)

von holger (Gast)


Lesenswert?

@ Ulrich

erstmal danke für die letzten Änderungen :)

Nun mal was komisches: Wenn ich die Debugausgaben abschalte,
bleibt der Webserver öfter mal hängen. Per Netzwerk geht
bis zum Reset dann gar nichts mehr.
Schalte ich DEBUG wieder an funktioniert alles reibungslos.

PS: Die Umlenkung von DEGUB auf usart_write_nop
legt sämtliche Debugtexte wieder ins RAM !

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Alsogut doch noch eine neue Version habe V1.0.12 Online gestellt. 
Debugmeldungen habe ich erstmal aktiviert!

Gruß
Ulrich

von Steffen (Gast)


Lesenswert?

>Du hast bestimmt eine alte Version der config.h
>in der aktuellen steht:
>#define HTTP_AUTH_DEFAULT  0

>MfG Hias

Hallo,

doch, das hatte ich gesehen. Aber es wird ja nur per Variable aus 
geschaltet. Der Code ist ja trotzdem drin. Allein der Header3 hat 129 
Byte, die dann ja nicht benötigt werden. Deswegen die Frage nach der 
Precompileranweisung. Oder schafft der Optimierer es, diesen Teil 
wegzuoptimieren?

Macht aber nichts, bei mir reicht der m32 gerade so (ich brauche telnet 
und cmd nicht, da ich zur Zeit keinen max232 o.ä. hier habe.), auch wenn 
die authentifizierung drinnen bleibt.

:-)

Schönes WE,
Steffen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

So jetzt sollte alles klappen Version 1_0_13!!!!

http://ulrichradig.dyndns.org

User:     admin
Passwort: uli1

und immer schön testen :-)

von Michael (Gast)


Lesenswert?

Hi!

Also ich bekomme mit der neusten Version keinen stabilen Betrieb
mehr hin. Di letzte mit der alles klappte, war die 1_0_4

Ich nutze das mitgelieferte 644-HEX und nach dem ersten
Aufruf wird die Seite zerstückelt.

http://mikrocontroller.homedns.org/

Jemand ne Idee??

Gruss,
Micha

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Die Hexfiles sind alte Versionen und entsprechen nicht den neusen Stand 
und sind nur zum testen. Ping usw. ob das Board überhaupt läuft.

Gruß
Ulrich

von Michael (Gast)


Lesenswert?

Hi!
Danke für die schnelle Antwort!
Leider klappts mit dem selbstcompilierten auch nicht besser.
Sehe ich richtig, dass nur im makefile MCU = atmega644
für den 644 eingegeben werden muss? Oder sind
sonst noch Änderungen per Hand zu machen?

Könnte es sein, dass sich ein Bit im ENC verstellt hat, dass
auch bei Netzreset beibehalten wird? Dieser Fehler trat plötlich auf,
nachdem es mehrere Tage eigentlich gespielt hat.

Ich habe im Moment das Problam, das die Seite beim ersten Aufruf
richtig dargestellt wird und danach fehlen immer die ersten Zeichen.
Dadurch werden die Zeilen die unter Head definiert sind, im klartext 
ausgegeben.

Gruss,
Micha

PS:Weiter so...

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Habe gerade die Hexfiles aktualisiert wir sprechen hier auch von der 
version 1.0.13?

Gruß
Ulrich

von Michael (Gast)


Lesenswert?

Ja, genau.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ich habe die Version schon den ganzen Abend am laufen. Mit mehreren 
Browsern und Rechner getestet.

http://ulrichradig.dyndns.org
User:     admin
Passwort: uli1


Gruß
Ulrich

von Michael (Gast)


Lesenswert?

Hi!
Da habe ich auch schon wild dran rumgeschaltet, keine Probleme.
Könnte es etwa an meinem fliegenden Aufbau liegen !?

Gruss,
Micha

von Michael F. (fury)


Lesenswert?

Hallo,

ich hab einen Teil des Codes (stack und httpd) auf einen 8051 portiert 
und hab ein Problem. Die Debugausgabe ist

NIC Init R
My IP: 192.168.1.88

Anwendung wird in Liste eingetragen: Eintrag 0
UInt
Length 60
IP-Type 608
ARP
Int
Length 74
IP-Type 8
PING
Pinged
Int
Length ,000000000000000000000000000000000000000,000000000
IP-Type ,000000000000000000000000000000000000000,000000000
Error
Int
Length ,000000000000000000000000000000000000000,000000000
IP-Type ,000000000000000000000000000000000000000,000000000
Error
Int
Length ,000000000000000000000000000000000000000,000000000
IP-Type ,000000000000000000000000000000000000000,000000000
Error
Int
Length ,000000000000000000000000000000000000000,000000000
IP-Type ,000000000000000000000000000000000000000,000000000
Error

Manchmal wird nachdem erkennen des Pings ein Reset ausgeführt. Ist das 
evtl. ein bekannter Fehler ? ich arbeite noch auf Basis von 1.0.2

dürfte kein Problem mit der Kommunikation mit dem ENC28J60 liegen.

von Michael (Gast)


Lesenswert?

Also ih bin mir sicher, dass der Code funktioniert. Ich werde
mal den fliegenden Aufbau gegen eine Platine tauschen, ich
denke, daran liegt es.

Gruss,
Micha

von Gerd G. (elektrikser)


Lesenswert?

Habe die neue Version auch schon zwei Stunden am Laufen und bisher keine 
Probleme.

Gute Arbeit!

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

Also keine Version nach 1.07 läuft bei mir stabil, die neuen ab 1.0.10 
stürzen ab (ATMEGA644), man bekommt keine Verbindung mehr zu Server bis 
zum Reset. Egal ob ich per IP oder Domainnamen aufrufe.

Habe heute mal nichts neues eingebaut und die Abstürze watren teilweise 
nach dem Start direkt, teilweise nach 2 Stunden.

Die aktuelle 1.0.13 stürzt sofort ab beim laden des Bildes der Rakete.

Ich habe jetzt die 1.0.7 drauf und die rennt.

von Michael (Gast)


Lesenswert?

Genau diese Probleme habe ich auch! Er läd die Rakete nicht und stürzt
ab. Läd er die Rakete, läuft er einen weiteren Durchgang durch.

Bei denen, wo es spielt, nutzt ihr auch den 644?

Gruss,
Micha

von Lötlackl (Gast)


Lesenswert?

Prima Spielzeug (jetzt wo's läuft). Dank an Ulrich!
Dennoch hat das mit der Led-Schalterei nicht so recht hingehauen, habe 
mir daher erlaubt, folgende Änderung in der "httpd.c", Funktion 
"httpd()" vorzunehmen:
...
 if (strcasestr(start_data,"LED1=1\0"))
 {
  PORTD |= (1<<PD5);
  http_entry[index].first_switch = 1;
 }
 else
 {
  PORTD &= ~(1<<PD5);
  http_entry[index].first_switch = 1;
 }

 if (strcasestr(start_data,"LED2=2\0"))
 {
  PORTD |= (1<<PD6);
  http_entry[index].first_switch = 1;
 }
 else
 {
  PORTD &= ~(1<<PD6);
  http_entry[index].first_switch = 1;
 }
 if (strcasestr(start_data,"LED3=3\0"))
 {
  PORTD |= (1<<PD7);
  http_entry[index].first_switch = 1;
 }
 else
 {
  PORTD &= ~(1<<PD7);
  http_entry[index].first_switch = 1;
 }
...

Jetzt komme sogar ich damit klar.
Bei mir hängt das zu schaltende Zeug an PD5...7 (Pollin-Board)

mfg Ringo

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael

Ja ich nutze den 644er, aber ich werde es gleich mit einem 32er 
probieren und berichten.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael und Ulrich

Also die 1.0.13 mit einem ATMEGA32 scheint "out of the box" zu 
funktionieren, habe keine Abstürze wie beim 644er.

Jetzt teste ich mit verschiedenen Taktfrequenzen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Es liegt an der MTU SIZE stellt die MTU SIZE auf 500 und es geht auch 
mit einen 644er. Ich arbeite drann!!

Mfg
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Danke, jetzt läuft der 644er super ;)

von Michael (Gast)


Lesenswert?

Ja, das wars. Klappt jetzt einwandfrei. Auch die
von mir geänderte 1_0_4 (Display und 8 LEDs) spielt jetzt
super.

Danke Uli!

Micha

PS:
Macht nicht mehr so lange :)

von Steffen (Gast)


Lesenswert?

>Macht nicht mehr so lange :)

Warum? So eine Nachtschicht ist doch was feines :-)

Jedenfalls hab ich gestern Abend (oder besser heute morgen) es endlich 
hinbekommen, dass ich mehrere Seiten darstellen kann (home.html, 
form.html, info.html,...). Diese Seiten sind oben durch eine 
Navigationsleiste ähnlich wie bei heise.de zu erreichen.

Zeit hat mich dabei vor allem das Ziel gekostet, es so hinzubekommen, 
dass ich die Seiten nur in eine Tabelle eintragen muss und dann die 
Seitenerkennung und die Navileiste automatisch erstellt werden.

Leider hat das ganze ne Menge Performance, Speicher und die 
Authentifizierung gekostet. Naja, und Bilder werden im Explorer auch 
nicht mehr angezeigt (?).

Problem ist: Ich verstehe meinen Code gerade selbst kaum noch. Also 
falls Interesse besteht, werde ich demnächst mal eine überarbeitete 
Version posten. Falls nicht wieder 5 Releases von Ulrich dazwischen 
kommen :-)

schönes WE euch
Steffen.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Steffen

Na die Nachschicht habe ich auch hinter mir ;) Aber das Ziel mehrere 
Seiten, stabil!, zum laufen zu kriegen auf einem ATMEGA644 hat nicht 
geklappt.

Ich wollte da wo die Standardseite angezeigt wird einfach je nach Header 
GET eine andere Seite wählen nur anscheinend passt der Header nicht 
immer komplett in die start_data rein und dann klappt es nicht.

Authentifizierung und Bilder sollten natürlich erhalten bleiben ;)

Aber vielleicht kann Ulrich ja da den rechten Weg weisen.

Hast Du einen 32er oder 644er benutzt?

Schönes WE allen zusammen.

Gruß
Thomas

von Steffen (Gast)


Lesenswert?

mega32 - ich musste aber telnet und cmd total raus schmeissen...

von Michael (Gast)


Lesenswert?

Hallo Uli!
Danke für die neue Version.

Irgendwie klappt das decodieren der Schalt-Parameter nicht mehr.
Es bleibt der vorherige Schaltbefehl irgendwo gespeichert und
toggeld die LED nochmals.

Gruss,
Micha

von Michael (Gast)


Lesenswert?

zu sehen hier:
http://mikrocontroller.homedns.org

für den 644 compilierte 1_0_14

Zur Kontrolle die Webcam:
http://www.vw-bus-t4.de/html/webcam.php

Gruss,
Micha

von Ulrich R. (radiguli) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,

So die letzte für heute habe noch was am ENC Treiber optimiert stürtzte 
zeitweise bei mir noch ab!

Also nochmal Version 1.0.14

und immer testen ;-)

http://ulrichradig.dyndns.org
User:     admin
Passwort: uli1

Gruß
Uli

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Noch einen kleinen Nachtrag, Änderung der Zeile 296 in der enc28j60.c 
auf

delay_us(10000);

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Einfach tolle Sache, jetzt klappt es auch mit mehreren Seiten etc. auf 
dem 644er ;)

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe mal ein Layout mit Magjack geroutet. Leider funktioniert es 
nicht. Programmieren des Avr's hat geklappt und ich komme per 
Hyperterminal auch drauf. Die Avr<->Enc Kommunikation müsste eigentlich 
auch klappen, da ich mir per Terminal die ENC-Versionsnummer auslesen 
lassen kann. Bin langsam am verzwiefeln. Auf einen Ping reagiert er auch 
nicht. Hat irgendwer eine Idee, woran es liegen könnte?? ggf. MAgjack 
falsch angeschlossen?

anbei der Schaltplan, Layout und Magjack Datenblatt

wäre euch sehr sehr dankbar, wenn ihr mir helfen könntet

Grüße Henning

von Willivonbienemaya .. (willivonbienemaya)


Angehängte Dateien:

Lesenswert?

Ich hatte einen Fehler bei der Verkabelung der Spulen, den hab ich jetzt 
bei dir nicht gesehen.

ich hab mal meinen Schaltplan angehängt. Der hat vor ein paar Tagen noch 
funktioniert.
Kannst ja mal vergleichen.

von Ulrich R. (radiguli) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,

Hier eine Software Version die es erlaubt schnell neue Seiten 
hinzuzufügen.
Schaut euch die Tabelle am Ende von webpage.h an!

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Leider bekomme ich meine Version mit den letzten BETA-Änderungen nicht 
korrekt zum laufen, aber dann lasse ich die weg weil der Server 
ansonsten  sehr sehr sehr gut läuft ;)

Jetzt eine Frage, ich habe auf dem Board einen Uhrenquarz am ATMEGA 
angeschlossen und der kann ja für den Timer1 (m32) bzw. Timer2 (m644) 
genutzt werden um genauer zu werden. Was muss an der timer.c geändert 
werden das dieser externe Taktgeber genutzt wird?

Kann man das evtl. in der config.h auswählbar machen, also Zeittakt 
intern/extern auswählbar?

Wünsche dir aber erst einmal einen schönen Sonntag und vielen Dank für 
die tolle Arbeit und Hilfe.

Gruß
Thomas

von holger (Gast)


Lesenswert?

>Jetzt eine Frage, ich habe auf dem Board einen Uhrenquarz am ATMEGA
>angeschlossen und der kann ja für den Timer1 genutzt werden um genauer
>zu werden. Was muss an der timer.c geändert werden das dieser externe
>Taktgeber genutzt wird?

Eine ganze Menge :( Solange der komplette Ethernet Verkehr
im INT2 Interrupt stattfindet kann man Timer die mit
Interrupts laufen quasi vergessen wenn sie GENAU sein sollen.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Holger

Soweit ich den Code verstehe wird in der ENC28J60 gepollt und nutzt den 
Interrupt nicht.

Beim Atmega644 könnte man doch weiterhin Timer1 nutzen wie bisher und 
Timer2 mit externem Quarz für eine Uhr, oder sehe ich das falsch?

Ich möchte quasi die Zeit erfassen die der Server läuft, und das so 
genau wie irgend möglich.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Kann mir niemand helfen?? :-(

Gruß Henning

von T. P. (dadomas)


Lesenswert?

Dann hänge doch mal den Schaltplan als PNG-File an, dann würde ich auch 
mal drüber schauen ;-)

von holger (Gast)


Angehängte Dateien:

Lesenswert?

@Thomas Heldt

>Soweit ich den Code verstehe wird in der ENC28J60 gepollt und nutzt den
>Interrupt nicht.

Dann frag ich mich wozu die ISR in stack.c gut ist ;)

>Beim Atmega644 könnte man doch weiterhin Timer1 nutzen wie bisher und
>Timer2 mit externem Quarz für eine Uhr, oder sehe ich das falsch?
>Ich möchte quasi die Zeit erfassen die der Server läuft, und das so
>genau wie irgend möglich.

Was verstehst du unter GENAU ?

Das mit dem Timer1 Overflow Int. ist allerdings etwas
ungenau. Der Timer1 muss nachgeladen werden. Dabei verliert
man immer etwas. Dazu komt noch die Zeit zum Sprung in die ISR.
Unglücklicherweise lädt Uli den Timer erst am Ende der ISR neu.
Das sollte man immer als erstes machen.

Besser ist aber der CTC Modus von Timer1.
Da wird der Timer1 automatisch neu gesetzt.
Ich hab da mal was angehängt.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Holger

Danke ich habe das mit dem Uhrenquarz heute N8 schon hinbekommen, es 
läuft super.

Ich nutze jetzt den Uhrenquarz und zeige auf der Webseite an wie lange 
der Server läuft.

@Ulrich

Ich habe dir mal eine Mail geschickt mit der Möglichkeit den Uhrenquarz 
alternativ als Taktgeber für den genutzten (m32 Timer1 / m644 Timer 2) 
zu verwenden.

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Holger

Kannst Du dir mal bitte meine timer.c ansehen, so läuft es bei mir,
bitte sage mir ob es für den ATMEGA32 so korrekt ist. Ich teste hier mit
dem 644er.

Eigentlich sollte es lt. Datenblatt so gehen.

Nachtrag:
Habe den Code mal aufgeräumt und aktualisiert ;)

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Holger

Sorry falsche Datei, hier die korrekte ;)

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Angehängte Dateien:

Lesenswert?

@dadomas
Hier ist der Schaltplan als PNG. Ich weiß echt nicht, woran es liegen 
könnte, die Magjackbelegung (SI-60024) hab ich auch schon 1000mal 
geprüft. Kann dir gerne auch noch das Layout schicken, aer hier kann man 
ja immer nur eine Datei anhängen

Gruß

Henning

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Henning Schaper

So wie ich das sehe und verstehe hast Du am MagJack die Leitungen 1+3 
sowie 4+6 vertauscht, probiere es mal wenn du sie genau anders herum 
anschliesst.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Thomas Heldt wrote:
> @Henning Schaper
>
> So wie ich das sehe und verstehe hast Du am MagJack die Leitungen 1+3
> sowie 4+6 vertauscht, probiere es mal wenn du sie genau anders herum
> anschliesst.

wie meinst du das genau??

1 3 4 6 ->>3 1 6 4
oder
1 3 4 6 ->>4 6 1 3

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

1 3 4 6 ->>3 1 6 4

So ;)

Frage:
Wo hast du den MagJack gekauft, ich suche auch so einen.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

> Frage:
> Wo hast du den MagJack gekauft, ich suche auch so einen.

den hab ich von www.csd-electronics.de


Ach und danke für deinen Tip, jetzt hab ich den Fehler auch gesehen. 
werde gleich mal meinen Lötkolben aufheizen und und das korrigieren, mal 
gucken ob es dann läuft

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Schade, hat leider nicht geklappt. Außerdem hab ich gesehen, dass in 
anderen Magjackschaltungen die Pins auch vertauscht sind, wo es aber 
trotzdem läuft

Grüße Henning

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Henning Schaper

Passiert gar nichts oder wird erkannt das ein Kabel eingesteckt wird, 
also leuchtet dann eine LED?

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Es ist folgendermaßen, wenn ich das Ding an mein Notebook anschließe 
(normales Patchkabel), dann kommt "Netzwerkkabel verbunden", die eine 
Led am Magjack leuchtet durchgänging, die zweite blinkt so ab und zu 
mal. Das Notebook zeigt mir unter Netzerkaktivität z.b. 200 pakete 
gesendet, aber 0 empfangen. Und beim anpingen halt immer 
Zeitüberschreitung und 100% Verlust.
Schließe ich den Webserver am Router, Switch oder Desktoprechner an(auch 
normales Patchkabel), dann passiert gar nix.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Henning Schaper

Bist du sicher das der MagJack zum Datenblatt passt?

Wenn JA, hast du mal nachgemessen ob zwischen den ENC28J60 Pins und dem 
jeweiligen Pin am MagJack ein Kontakt vorhanden ist?

Wenn auch JA, hast Du einen HUB oder Switch?

-> Switch, bin ich ratlos
-> HUB, wenn da 100MBit Geräte dran hängen würde es mit den 10MBit des 
ENC nicht funktionieren.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@henning

Hat der Webserver auch sicher eine IP-Adresse aus deinem Netzwerk?

von Kornelius D. (kornelius)


Lesenswert?

Soweit ich weiß benötigt man ein gekreuztes Kabel wenn du den Webserver 
an dein Notebook anschliessen willst...

von Robin T. (rotoe) Benutzerseite


Lesenswert?

Kornelius Tetzner wrote:
> Soweit ich weiß benötigt man ein gekreuztes Kabel wenn du den Webserver
> an dein Notebook anschliessen willst...

Vollkommen richtig. Nennt sich "Cross Over LAN-Kabel"

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Angehängte Dateien:

Lesenswert?

Datenblatt passt, Kontakt ist vorhanden, IP ist die Richtige, und ich 
habs an meinem Router Desktoprechner und Laptop probiert.

Wie lang dürfen die Leitungen zwischen enc und Magjack sein?? da geht ja 
immerhin HF durch, Wie tolerant dürfen die 50ohm widerstände sein?? Wo 
sollten sie sitzen (HF)??

Das wären noch meine Therorien für Fehlerquellen

anbei nochmal das Laout als PNG, vielleicht hab ich da ja n groben 
Schnitzer drin

Gruß Henning

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Kornelius Tetzner wrote:
> Soweit ich weiß benötigt man ein gekreuztes Kabel wenn du den Webserver
> an dein Notebook anschliessen willst...

Aber wieseo geht es dann am Router der ja in diesem Falle als Switch 
fungiert auch nicht? Soweit ich weiß kann mein Notebook, so wie viele 
andere moderene Notebooks, das umschalten, sodaß kein Crossover benötigt 
wird


Grüße

von Kornelius D. (kornelius)


Lesenswert?

Henning Schaper wrote:
> Kornelius Tetzner wrote:
>> Soweit ich weiß benötigt man ein gekreuztes Kabel wenn du den Webserver
>> an dein Notebook anschliessen willst...
>
> Aber wieseo geht es dann am Router der ja in diesem Falle als Switch
> fungiert auch nicht? Soweit ich weiß kann mein Notebook, so wie viele
> andere moderene Notebooks, das umschalten, sodaß kein Crossover benötigt
> wird
>
>
> Grüße

Wäre mir ehrlich gesagt neu...bei meinem alten Webserver musste ich ein 
gekreutztes Kabel nehmen und das wurde auch stets im Microchip Forum 
gepredigt...hast du deiner Netzwerkkarte eine feste IP zugewiesen?

von Florian (Gast)


Lesenswert?

Leider kann ich die neue Version trotz WinAVR vom 16.05.2007 nicht 
komplilieren:

Compiling: httpd.c
avr-gcc -c -mmcu=atmega32 -I. -g -Os -funsigned-char 
-funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=httpd.lst  -std=gnu99 httpd.c -o httpd.o
httpd.c: In function `httpd_header_check':
httpd.c:161: warning: implicit declaration of function `strcasestr'


Muss ich irgend eine Datei zusätzlich includen? Ich habe bisher nichts 
verän dert.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Florian

Also mit der Version vom 25.05.2007 klappt es, installiere dir dich mal 
die aktuelle WINAVR ;)

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Henning Schaper wrote:
> Schade, hat leider nicht geklappt. Außerdem hab ich gesehen, dass in
> anderen Magjackschaltungen die Pins auch vertauscht sind, wo es aber
> trotzdem läuft
>
> Grüße Henning

Hast du dir mal den Schaltplan von mir angesehen den ich weiter oben 
gepostet habe?
Ich habe da den CSD Magjack benutzt. Und so funktioniert es bei mir 
auch.
Getestet mit Crossoverkabel direkt an einem PC und mit 1:1 Kabel über 
ein Router/Switch.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Hallo  Willivonbienemaya

könntest die mir die eagle libary, die du dort verwendet hast zukommen 
lassen?? hast du evntl auch ein eigenes layout gemacht??

von Willivonbienemaya .. (willivonbienemaya)


Angehängte Dateien:

Lesenswert?

Ich habe nur eine Adapterplatine gemacht. Allerdings hatte diese noch 
einen Fehler beim Magjack. Ich habe mal die korrigierte Version 
angehängt. Das Layout ist jetzt halt noch nicht fertig geroutet, das hab 
ich nicht mehr geändert.

Die Lib brauchst du nicht, du kannst dir einfach den Magjack aus dem 
Schaltplan rauskopieren.

von Willivonbienemaya .. (willivonbienemaya)


Angehängte Dateien:

Lesenswert?

hier das Board

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Danke, genauso hab ich es ja auch...naja hab zusätzlich noch die 
mittelanzapfung, aber das hab ich ja auch schon versucht, die mal 
wegzulassen. ich glaub langsam, mein magjack hat nen defekt. Oder 
glaubst du das könnte daran liegen, dass die zuleitungen zum magjack zu 
lang sind (hochfrequenz), bei mir sind die ca. 5cm. oder dass ich statt 
50ohm 51ohm genommen hab?

grüße hennning

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Holger

Ich habe noch einmal den Code überarbeitet für den Timer könntest Du mal 
schauen und sagen ob der Teil für den Atemga32 korrekt ist, der Teil für 
den Atmega644 läuft.

Danke für eine Antwort.

Gruß
Thomas

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Henning Schaper wrote:
> Danke, genauso hab ich es ja auch...naja hab zusätzlich noch die
> mittelanzapfung, aber das hab ich ja auch schon versucht, die mal
> wegzulassen. ich glaub langsam, mein magjack hat nen defekt. Oder
> glaubst du das könnte daran liegen, dass die zuleitungen zum magjack zu
> lang sind (hochfrequenz), bei mir sind die ca. 5cm. oder dass ich statt
> 50ohm 51ohm genommen hab?
>
> grüße hennning

Was hast du denn für ein Widerstand als Rbias drin? Welche Version hat 
dein ENC?
Du kannst mal versuchen die Zuleitung abzuschirmen um das 
auszuschliessen.

Blöde Frage: Der Top Layer ist nur Darhtbrücke oder? Die Leiterbahnen 
machen nämlich gut kurzschlüsse.

Was bei mir andres ist, ist die Mittelanzapfung und GND an Pin8 hab ich 
nicht.
Ich hab am Magjack nur 4 Pins belegt.

von Florian (Gast)


Lesenswert?

Vielen Dank Thomas.

Ich habe die neue Version vom 25.05.2007 ins alte WinAvr Verzeichnis 
installiert, wo er so weit ich gesehen habe alles überschrieben hat. In 
der string.h Datei gibt es auch einen Prototyp für die strcasestr 
Funktion. Muss ich das alte WinAVR vorher löschen bevor ich das neue 
installiere?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Florian

Sorry, kann ich nichts sagen ist meine erste WINAVR Installation 
gewesen, aber schaden kann es sicher nichts die alte zu entfernen ;)

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

> Was hast du denn für ein Widerstand als Rbias drin?
2,32ohm bei 2%

> Welche Version hat dein ENC?
Version 5, das hat mir das Terminal jedenfalls ausgespuckt

> Du kannst mal versuchen die Zuleitung abzuschirmen um das
> auszuschliessen.
Habe die Zuleitungne zum Magjack direkt an die Pins mit 2cm langer Litze 
gemacht, also der Magjack baumelt jetzt so unter der Platine. War jetzt 
keine abschirmung, sondern ne verkürzung

> Blöde Frage: Der Top Layer ist nur Darhtbrücke oder? Die Leiterbahnen
> machen nämlich gut kurzschlüsse.

Na klar sind das nur Drahtbrücken
----

Habe jetzt nochmal mit nem Scope gemessen, direkt an Tpin und TPout vom 
Enc..
Wenn ich das Ding jetzt anpinge, dann hab ich ein Flackern bei TPin aufm 
Scope, sprich da kommt was an.

Dann hab ich nochmal an TPout gemessen, während ich den Webserver 
angepingt hab, da müsste dann ja eigentlich ebenfalls ein Flackern 
kommen, was dann die Antwort wäre.. ist aber leider die ganze Zeit auf 
High

Spontan würd ich sagen, die Pegel zwischen Avr&Enc passen doch nicht so, 
und der Enc bekommt gar nix mit, was der Avr ihm sagt, bzw, umgekehrt. 
Sodaß der Enc dann einfach gar nix macht

Aber das widerspricht sich wieder mit der Tatsache, dass ich die 
Versionsnummer auslesen konnte.

Ich verwende die Hardware (bis auf die Magjack manipulation) und die 
Software von Ulrich Radig. Das müsste dann ja eigentlich auch passen


Hat einer noch ne Idee??

Grüße Henning

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Henning Schaper wrote:
>> Was hast du denn für ein Widerstand als Rbias drin?
> 2,32ohm bei 2%
2,32 KOhm bei 2% sorry, Tippfehler

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Henning Schaper

Da Du ja die Version auslesen kannst, ich habe die selbe Version, ist 
die Verbindung AVR <-> ENC korrekt. Ich nutze einen RBIAS mit einem Wert 
von 2K mit 1%. Je nach Länge des RJ45 Kabels habe ich da schon von 
Problemen gehört.

von Jonas G. (jonny)


Lesenswert?

Ich habe RBIAS 2,7 KOhm und habe auch gelesen, dass dies in den neuen 
Revisionen des ENCs erforderlich ist.
Ich habe mit 2,7k keinerlei Probleme...

Jonas

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Alle

So endlich habe ich es geschafft und habe die timer.c so geändert, danke 
auch an Holger für den Tip, das er im CTC Mode mit ATMEGA32 und 
ATMEGA644 arbeitet. Hat man einen externen Uhrenquarz angeschlossen kann 
man in der config.h durch folgende Zeile beeinflussen welcher Takt für 
den Timer genutzt wird.

Zeile in config.h einfügen:

[c]
//Timertakt intern oder extern
#define EXTCLOCK 0 //0=Intern 1=Externer Uhrenquarz
[/]

Und die hier angefügte timer.c nutzen.

Gruß
Thomas

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Jonas G.

Mein ENC Rev. 5 funktionierte mit 2,7K und langem Kabel nicht korrekt, 
Paketverluste, gleiches Kabel 2K funktioniert wunderbar. Olimex z.B. 
setzt bei allen Versionen 2K ein soweit ich gehört habe.

[Nachtrag]

Lt. Microchip soll bei Rev.5 ein 2,32K mit 1% genutzt werden also sollte 
es bei Henning klappen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ich habe einen ENC mit der Rev. 5 daran funktionieren die Bias 
Widerstände 2k, 2.3k und 2.7k

Gruß
Ulrich

von Nicht B. (florian01)


Lesenswert?

@ Thomas:

Hab es jetzt zuerst gelöscht und schon ging es.
Vielen Danke Dir und Grüße
Florian

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Hallo,
ich glaub ich hab meinen Fehler gefunden...Das muss ich aber noch 
testen.
Habe vermutlich für den ENC kein Grundtonquarz, sondern es hat die 25Mhz 
im 3. Oberton


Grüße Henning

von Michael (Gast)


Lesenswert?

Hallo,

ich haben den Webserver mit einem Mega644 in Betrieb jedoch hängt er 
sich städig auf und der Output der Konsole sieht auch etwas 
verwurschtelt aus :(

Die Einstellung im Terminalprog ist normal auf 9600 8n1

Hab ihr vll eine Ahnung an was das liegen kann?




**** NEUE )TUTHPÊêJEU%UåuRRRRjRjR:Q    ŠEõŠrŠjR
•ÁÑ遥µ…•½¥™±¥µ…•½áµá‰¥Ñµ…Á±¥µ…•½©Á•±¥µ…•½Á©Á•±…ÁÁ±¥…Ñ¥½¹½ 
áµÍ¡½­Ý…Ù•µ™±…Í¡±©½©5)•Áѵ1…¹Õ…•é‘•5)Uµ
UéááÙ5)•Áѵ¹½‘¥¹éé¥Á±‘•™±…Ñ•5)U͕ɵ•¹Ñé5½é¥±±…½Ñ¹Á¡½µÁ…Ñ¥ 
‰±•í5M%Ý¹Áí]¥¹‘½Ý́9QÕ¹Å큹9Q
1IÉ¹Á¹ÕÁÝÉÝí5¥5)!½ÍÑéÅåɹÅÙá¹É¹ÉÁÁ5)
½¹¹•Ñ¥½¹é-••Áµ±¥Ù•5)5)ñµµµ!I9II%
!Q…µµµù5)ÿ
**** NEUE HTTp ANFORDERUNG ****

GET / ÈEõŠrŠjR
¬¬—Jµ…•½¥™±¥µ…•½áµá‰¥Ñµ…Á±¥µ…•½©Á•±¥[XVÖ 
©Á•±…ÁÁ±¥…Ñ¥½¹½áµÍ¡½­Ý…Ù•µ™±…Í¡±©½©5)•Áѵ1…¹Õ…•é‘•5)Uµ
UéááÙ5)•Áѵ¹½‘¥¹éé¥Á±‘•™±…Ñ•5)U͕ɵ•¹Ñé5½é¥±±…½Ñ¹Á¡½µÁ…Ñ¥ 
‰±•í5M%Ý¹Áí]¥¹‘½Ý́9QÕ¹Å큹9Q
1IÉ¹Á¹ÕÁÝÉÝí5¥5)!½ÍÑéÅåɹÅÙá¹É¹ÉÁÁ5)
½¹¹•Ñ¥½¹é-••Áµ±¥Ù•5)ÕÑ¡½É¥é…Ñ¥½¹é 
…Í¥µåÙ‘ÁÁ‰ÉÅ¡‘Uñµµµ1=%9=-…µµµù5)õ5)5)ñµµµ!I9II%
!Q…µµµù5)ÿ
**** NEUE HTTP ANFORDERUNG *~**

GET /favicon.ico HTTP/1.1
Accept: */*
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 
2.0.50727; FDM)
Host: 192.168.2.200
Connection: Keep-Alive
Authorization: Basic cm9vdDp0b21hdGU  <---LOGIN OK!--->
=

<---HEADER ENDE ERREICHT!--->

von holger (Gast)


Lesenswert?

Benutzt du den internen RC-Osci ?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael

Ein paar mehr Informationen wäre schön, welche Taktfrequenz, Takt 
intern/extern, Takt wenn extern über Quarz oder ENC?

Welche Version der Software nutzt du?

Was hast Du alles geändert, ein Favicon ist ja standardmässig nicht im 
Code enthalten ;)

Welches Board nutzt Du oder fliegend aufgebaut?

Ist der Server von außen zugänglich um es sich mal an zu sehen?

Welcher Takt steht in der config.h ?

Welche Baudrate nutzt du?

von Micha .. (micha68) Benutzerseite


Lesenswert?

@Henning

Hi!
Ich nutze auch den Reichelt-Quarz, 25Mhz, 3. Oberton.

Funktioniert bei mir im fliegenden Aufbau (Steckbrett)
einwandfrei.
http://mikrocontroller.homedns.org/

Gruss,
Micha

von Michael (Gast)


Lesenswert?

kk sry ...


Aaaalso:

Takt: 16 Mhz Quarz (steht auch in der config.h)
Board: selbst gemachte Platine (Layout von Uli), mit ISP zum STK500 
verbunden
Uart: avr und pc auf 9600 8n1
Software: Aktuelle die man auf Uli's Seite saugen kann
Änderungen: Webseite aufs Minimum reduziert (ohne Grafiken)


Eines ist nur seltsam ... mal kann man einige http-anfragen im Terminal 
wunderbar lesen - mal kann man nicht mal das "System ready" entziffern 
:(

von Michael (Gast)


Lesenswert?

>> Ist der Server von außen zugänglich um es sich mal an zu sehen?

Leider nein, hab dyndns im Mom nicht eingerichtet.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael

Nur zum testen geh mal auf 300 Baud runter dann wäre der Baudratenfehler 
nur noch 0,01%, vielleicht ist der Quarz so ungenau oder schwankt.

Gib mal bescheid was dann passiert.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Michael Volk wrote:
> @Henning
>
> Hi!
> Ich nutze auch den Reichelt-Quarz, 25Mhz, 3. Oberton.
>
> Funktioniert bei mir im fliegenden Aufbau (Steckbrett)
> einwandfrei.
> http://mikrocontroller.homedns.org/
>
> Gruss,
> Micha

Hi Micha,
hast du zusätzlich noch irgendeinen Filter mit drin, der den Grundton 
rausfiltert??

Grüße, Henning

von Micha .. (micha68) Benutzerseite


Lesenswert?

@Henning
Nein, schaltung nach Uli. Nur den Quarz mit 2x 22pF nach Masse.

Gruss,
Micha

von Michael J. (kalie)


Lesenswert?

Nun gut, mit 300 Baud bekomme ich überhaupt keine Verbindung zum Uart 
des Servers :((

Stelle ich in der Config wieder auf 9600 um gehts wieder ... nur eben zu 
98% unleserlich.

Solche Probleme hatte ich mit dem AVR Uart noch nie :(

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael J.

Stell mal den 644er um auf interne 8 MHz und im Code auch auf 8000000UL 
um, was passiert dann?

Was passiert wenn Du mal auf den Quarz tippst mit dem Finger?

Kannst Du mir den Code mal als zip schicken, thomas [at] heldt-web 
[punkt] de  ?

von Michael J. (kalie)


Angehängte Dateien:

Lesenswert?

> 8 Mhz intern:

System Ready

NIC Init Ready

My IP: 192.168.02.200


**** NEUE HTTP ANFORDERUNG ****

GET /?LED1=1&Submit=Senden HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
application/x-shockwave-flash, */*
Referer: http://192.168.2.200/?Submit=Senden
Accept-Language: de
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 
2.0.50727; FDM)
Host: 192.168.2.200
Connection: Keep-Alive
Authorization: Basic cm9vdDpwaW5ndQ  <---LOGIN OK!--->
==

<---HEADER ENDE ERREICHT!--->

****પUBQQÁ@NFORDERÿuRRRRjRþ¡TÒéšÕµ¥ÑõM•¹‘õ
  ŠEõŠr5)•ÁÑùR«+ë«ëé+˱¥µ…•½á·á‰¥Ñµ…Á±ÿZ[XVÖI
õ±¥µ…•½Á-®Ö  )
Á¥…Ñ¥½¹½áµÍ¡½­Ý…Ù•µ™±…Í¡±ùI©HHU™•ÉõÉ遡ÑÑÁé½½ÅåɹÅÙá¹ù.200/?LEÄêŠ2šÕ‰ 
µ¥ÑõM•¹‘•¹5)ÿ•Áѵ1…¹Õ…•é‘•ÿ)Uµ
AUéáÙ5)•Áѵ¹½‘¥¹éé¥Á±ÿeflate
õ•Éµ•¹Ñé5½é¥±±…½ñ¹Á¡½µÁ…WK‹«kjMåE 7.0; Windows NT .1; 
.NETàŠJ’r‚rª‚“ÓÓ25¥ÿR†õÍÑéÅý&)²Âr’r’‚Á5)
½¹¹•Ñ¥½¹é-••Áµ±¥Ù•5)ýÑ¡½É¥é…ÑÿËK…Í¥ÿµåÙ‘ÁÝ…U“‹+âj-LOGIN 
OÿR©©ÉjRêêjRjRâjjjBýE©J*9Q*ªTjŠjjòjRþ


Quarz streicheln bringt auch keine Besserung.
Habe den Src mal als Anhang dazu.

Der Server läuft im LAN zur Zeit erfreulich stabil, nur das Uart macht 
noch gewisse Probleme.

von TheMason (Gast)


Lesenswert?

Ich sollte die Frage besser hier stellen als in dem Kommentar-Thread auf 
der Hauptseite ....

Erstmal deep respect Ulrich. Geiles Teil. Einfach und kann alles was 
benötigt wird um dem AVR die weiten des Internets näherzubringen.

Folgendes :

Ich würde ganz gerne das Dingen nachbauen. Da ich aber kein 
Platinen-Ätz-Studio habe wollte ich mal nachfragen ob es für diese 
Platine evtl. eine Sammelbestellung gibt.

Da ich selbst auch einen mini-TCP/IP-Stack schreiben möchte (so lernt 
man am meisten) wäre ich für Infos welche Paket-Typen (ARP, ICMP, TCP 
usw) es gibt, wie diese aufgebaut sind und was man davon für eine 
einfachst Kommunikation zweier Ethernet Teilnehmer benötigt. Hat jemand 
evtl. einen guten Link in dem die Pakettypen, deren Aufbau und aufgabe 
beschrieben sind ?

Gruß
Rene

von holger (Gast)


Lesenswert?

Wenn nur der USART Probleme macht hast du wahrscheinlich
die Fuses vom ATmega644 falsch programmiert. Der steht
vermutlich immer noch auf interner RC-Osci, auch
wenn du da einen Quarz am uC hast.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael J.

Läuft bei mir ohne Probleme, vielleicht ein Problem mit dem RS232 Kabel 
etc.
Also der Code ist OK.

von Michael J. (kalie)


Lesenswert?

nope, steht auf:

CKSEL=0111 SUT=10

also externer Quarz

von Michael J. (kalie)


Lesenswert?

Das Kabel, hm ....

1m Kabel (vom STK500) .. unlesbar
1m Kabel (USB - RS232) .. dito

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael J.

Vielleicht der MAX232 auf dem Board bzw. die C`s, kalte Lötstelle, 
Wackelkontakt etc. alles nochmal prüfen.

von Michael J. (kalie)


Lesenswert?

Das habe ich mir auch gerade überlegt :D

Werde morgen mal direkt vom Mega zum max232 auf dem STK500 gehen, mal 
sehen was der so spricht.

von TheMason (Gast)


Lesenswert?

@michael :

kannst du den max232 nicht einfach per loopback testen ?!
dann weißt du zumindest ob es an ihm liegt oder am avr ....

gruß
rene

von Michael J. (kalie)


Lesenswert?

Problem gefunden!

Über den Max232 vom STK500 redet der Server nun endlich lesbares mit mir 
:)
Nun werde ich mal die sämtliche C's am Max wechseln und auch direkt 
einen neuen Max verbauen. Vielleicht wirds ja dann :)


So liest es sich doch gleich viel viel besser:


System Ready

NIC Init Ready

My IP: 192.168.02.200


**** NEUE HTTP ANFORDERUNG ****

GET /?LED1=1&Submit=Senden HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, 
application/x-shockwave-flash, */*
Referer: http://192.168.2.200/?LED3=3&Submit=Senden
Accept-Language: de
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 
2.0.50727; FDM)
Host: 192.168.2.200
Connection: Keep-Alive
Authorization: Basic cm9vdDpwaW5ndQ  <---LOGIN OK!--->
==

<---HEADER ENDE ERREICHT!--->

Edit:
Warum nimmt eigentlich niemand den Max203? Der braucht keine externen 
C's ...

von Stefan (Gast)


Lesenswert?

Preis/Aufwand/Nutzen

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ich hatte bisher noch nie Probleme mit dem MAX232, ich benutze sogar nur 
100nF Kondensatoren. Den MAX232 verbaue ich eigentlich immer.

Gruß
Ulrich

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Es gibt den max232cpe, laut Datenblatt 1µF Kondensatoren verwenden
und es gibt den max232acpe, bei dem muss man laut Datenblatt 100n 
überall verwenden.
Der max233 braucht gar keine ;)

Gruß Henning

von TheMason (Gast)


Lesenswert?

Ich glaube meine Frage ist etwas untergegangen :-((


Ich möchte selbst auch einen mini-TCP/IP-Stack schreiben (so lernt
man am meisten) und ich wollte mal Fragen ob jemand einen guten Link mit 
erklärungen zu den einzelnen Paket-Typen (ARP, ICMP, TCP usw) hat, indem 
erklärt wird wie diese aufgebaut sind (byte-mässig), welche funktion die 
Paket-Typen haben und was man davon für eine einfachst Kommunikation 
zweier Ethernet Teilnehmer benötigt. Hat jemand evtl. einen solchen 
guten Link parat ?

Habe schon in Wikipedia nachgeschaut, aber ich suche eher eine geraffte 
Dokumentation (also nicht welche RFC in welcher ISO wann und wie 
festgelegt wurde, sondern die Dinge die common sind und auf die man sich 
"verlassen" kann).


Gruß
Rene

von Gerd G. (elektrikser)


Lesenswert?

@TheMason

Einen Platinen-Sammelthread gibt es nicht, aber für einen Versuch klappt 
das sogar auf Lochraster oder Steckboard.

>Da ich selbst auch einen mini-TCP/IP-Stack schreiben möchte (so lernt
>man am meisten) wäre ich für Infos welche Paket-Typen (ARP, ICMP, TCP
>usw) es gibt, wie diese aufgebaut sind und was man davon für eine
>einfachst Kommunikation zweier Ethernet Teilnehmer benötigt. Hat jemand
>evtl. einen guten Link in dem die Pakettypen, deren Aufbau und aufgabe
>beschrieben sind ?
>
>Gruß
>Rene

Wikipedia hilft schon mal weiter. Eine weitere Hilfe gibt es auf der 
Seite vom Ulrich:
http://www.ulrichradig.de/site/infos/pdf/Netzwerk.pdf
Dann gäbe es noch einige andere Seiten:
http://www.elektronik-kompendium.de/sites/net/0606251.htm
http://netzmafia.de/skripten/netze/netz8.html
usw. usf.

Gruß Gerd

von Gerd G. (elektrikser)


Lesenswert?

>Habe schon in Wikipedia nachgeschaut, aber ich suche eher eine geraffte
>Dokumentation (also nicht welche RFC in welcher ISO wann und wie
>festgelegt wurde, sondern die Dinge die common sind und auf die man sich
>"verlassen" kann).

Was verstehst du unter "common"? Wikipedia zeigt schon mal ein Diagramm, 
wie das einzelne Protokoll aufgebaut ist. Wenn du wissen willst wie ein 
Netzwerk funktioniert, bist du bei meinem letzten Link gut aufgehoben. 
Ansonsten musst du direkte Fragen stellen, damit ich weiß, was du wissen 
willst.

von Steffen S. (Gast)


Lesenswert?

Hi,

kann man anstelle des 2022-Übertragers auch einen 20F001 nehmen?
Oder einen F0041 von einer 10/100 Realtekkarte?

von Gerd G. (elektrikser)


Lesenswert?

Wahrscheinlich schon. Aber die sind wahrscheinlich kleiner (kürzer) und 
damit müsste das Layout geändert werden.

von TheMason (Gast)


Lesenswert?

@gerd

erstmal danke für die links.
sowas in der richtung habe ich gesucht.

mit common meinte ich das wahrscheinlich nur ein pc bzw. server alle 
pakettypen unterstützen muß, ein mikrocontroller jedoch nicht.
ich meinte daher was für eine einfache kommunikation (http/udp/telnet) 
alles benötigt wird. aber ich denke das lässt sich aus den links 
erschließen.

>Wikipedia zeigt schon mal ein Diagramm,
>wie das einzelne Protokoll aufgebaut ist

das ist klar, aber wikipedia zeigt weiterhin noch alle weiteren 
möglichkeiten auf die ein mikrocontroller jedoch nicht unterstützen muß 
(z.b. muß ein AVR für eine einfache kommunikation sicherlich nicht alle 
arten von ICMP-Paketen kennen und behandeln müssen, oder !?) so war das 
ganze gedacht

gruß
rene

von Steffen S. (Gast)


Lesenswert?

kann man den Übertrager auch sockeln?

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Die Version 1.0.15 steht nun zur Verfügung! Nun auch mit UDP und NTP 
Client. Somit kann man sich eine Ethernet Uhr bauen :-}

Gruß
Ulrich

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Hi Ulrich,

Version 1.0.15 läuft prima. NTP funtioniert.
Könntest du nicht vieleicht die time.c aus dem Anhang
nehmen ? TIMER1_OVF_vect erzeugt keine wirklich gute Sekunde.

Begründung siehe hier:
Beitrag "Re: Webserver ATmega32/644DIP ENC28J60"

Gruß
 Holger

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo @Holger,

Habe ich vor, werde ich die Tage noch übernehmen.

Gruß
Ulrich

von holger (Gast)


Lesenswert?

@ Steffen S.
>kann man den Übertrager auch sockeln?

Meiner ist gesockelt. No Problemo.

@ Ulrich

Danke !

von Micha .. (micha68) Benutzerseite


Lesenswert?

@Uli

Hi!
Danke für die neue Version. Hat einen Moment gedauert, habe
dann aber die geänderte MAC gefunden ;)

Allerdings habe ich immer noch das Problem, das
das Schalten der 3 Leds nicht einwandfrei funktioniert.
Schalte ich im ersten Durchgang LED1, wechselt sie ihren
Zustand, soweit richtig.

Will ich nun im nächsten Durchgang nur Led2 toggeln, geschieht
dies auch wie es soll, jedoch wird der Vorgang aus Durchgang 1
auch widerholt, dH, LED1 schaltet auch.

Schalte ich nun Led3, schaltet LED3 und LED2.

?Idee

Gruss,
Micha

von holger (Gast)


Lesenswert?

>Will ich nun im nächsten Durchgang nur Led2 toggeln, geschieht
>dies auch wie es soll, jedoch wird der Vorgang aus Durchgang 1
>auch widerholt, dH, LED1 schaltet auch.

>Schalte ich nun Led3, schaltet LED3 und LED2.

>?Idee

Idee nicht, kann ich aber bestätigen.
LED1 anklicken und senden. OK.
Im Firefox sofort auf neu laden klicken, LED1 toggelt.
Nochmal neu laden, LED1 toggelt.

Ein bißchen warten, neu laden, LED1 toggelt nicht mehr.

von Steffen (Gast)


Lesenswert?

Hallo,

eine Frage an Ulrich:

Hat das einen Grund, dass du deine debug-Ausgaben jetzt direkt mit 
usart_write schreibst und nicht mehr mit DEBUG?

Steffen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Nein das hat keinen Grund! In NTP werde ich es noch ändern. Wieso?
Ich werde heute noch eine neue Version veröffentlichen. Also mit 
Änderung von NTP(DEBUG) und Einbindung der neuen Routinen für timer.c.


Gruß
Ulrich

von Domschl (Gast)


Lesenswert?

Hallo!

Zu erst einmal: Ein wirklich geniales Projekt. Die nötigen Bauteile hab 
ich schon bestellt. Freu mich schon auf meinen eigenen Webserver!

Meine Frage:
Ist es möglich mit dem Webserver eine Seite im Internet aufzurufen? 
Nicht um zu surfen sondern um bei Dyndns die neue IP bekannt zu geben. 
Dazu muss man ja nur folgende Seite aufrufen:

"http://<user>:<password>@members.dyndns.org/nic/update?hostname=<host>";

Bei mir wird nämlich die Verbindung zwischen 10 und 50 mal am Tag für 
ein paar Sekunden getrennt und ich möchte nicht auf jeden Rechner im 
Netz ein Tool installieren, nur um bei Dyndns aktuell zu bleiben.

Danke im Voraus

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Diese Idee mit Dyndns hatte ich auch schon! Mir ist es auch schon ohne 
Probleme gelungen eine Webseite aus dem Internet abzurufen. Dieses war 
meinerseits als RSS Reader gedacht, um aktuelle Infos/News auf einem LCD 
Display darzustellen.

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Aktuelle Version rennt super, danke ;)

Hast du geplant die Möglichkeit eine Verbindung über einen Router nach 
außen auf zu bauen auch für TCP geplant, dann könnte man auch 
"Warnmails" versenden etc.

von Günni (Gast)


Lesenswert?

Hallo zusammen,

super Projekt.
Vielen Dank an Ulrich, das er so nett ist und alles zur Verfügung 
stellt. Ist bei vielen ja nicht mehr so üblich.

Hätte da noch ein paar Ideen/Anregungen für das Projekt, kann aber 
leider selbst nicht alles umsetzten zumal es die Ressourcen des 
Controllers sprengen würde.

-EMail Header von POP Server auf LCD anzeigen lassen(Tasten für Auswahl)
-RSS Reader(wie Ulrich schon schrieb)
-WakeOnLAn(um Rechner von der Ferne einzuschalten)
-GSM Schnittstelle(alternative zu WakeOnLan oder autark zum schalten per 
Anruf/SMS anstatt über Browser)
-Servo/Webcam Interface

Günni

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Du hast in der 1.0.17 den MTU Wert für den m644 wieder auf 500 gesetzt, 
es funktioniert aber bei mir nur korrekt mit einem Wert von 1000, hatte 
es was zu bedeuten das der Wert geändert wurde?

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hi!

Ich will ja nicht nerven, aber seit einigen Versionen klappt das 
schalten der Ausgänge nicht mehr. Habe nur ich das Problem?

Gruss,
Micha

PS: Danke für die neue Version

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael Volk

Teste mal folgende Änderung in de http.c
1
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"LED1=1\0")!=0){ 
2
      PORTA ^= (1<<PA0);
3
      http_entry[index].first_switch = 1;
4
    }
5
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"LED2=2\0")!=0){
6
      PORTA ^= (1<<PA1);
7
      http_entry[index].first_switch = 1;
8
    }
9
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"LED3=3\0")!=0){
10
      PORTA ^= (1<<PA2);
11
      http_entry[index].first_switch = 1;
12
    }

ersetzen durch
1
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"GET /?LED1=1\0")!=0){ 
2
      PORTA ^= (1<<PA0);
3
      http_entry[index].first_switch = 1;
4
    }
5
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"GET /?LED2=2\0")!=0){
6
      PORTA ^= (1<<PA1);
7
      http_entry[index].first_switch = 1;
8
    }
9
    if (strcasestr((char*)&eth_buffer[TCP_DATA_START_VAR],"GET /?LED3=3\0")!=0){
10
      PORTA ^= (1<<PA2);
11
      http_entry[index].first_switch = 1;
12
    }

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hi!
Jetzt wiederholt er keine Schaltvorgänge, allerdings
lässt sich so nur ein Ausgang gleichzeitig umschalten :(

Gruss,
Micha

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Michael

Ja sorry hatte nicht dran gedacht das ich ja nur eine LED schalte, mein 
Code ist aber auch schon zu sehr angepasst.

Das Problem ist das beim erneuten Aufrufen der Seite der Referer 
übergeben wird und der wird halt auch ausgewertet und da steht die URL 
des letzten Schaltvorgangs drin.

Ich habe es so geändert das ich nicht über eine Box zum anklicken 
schalte sondern über einen Button und in das Formular immer den 
effektiven Wert der PIN eintrage.

Vielleicht hilft es dir weiter um etwas zu experimentieren.

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hi!
Ich habe experimentiert und die Art der Datenübergabe von 'get'
auf 'post' in der webpage.h geändert.

Auf den ersten Blick scheint das die Lösung zu sein, da keine
Daten mehr über URL übertragen werden.

Ich forsche mal, ob diese Lösung andere Fallen hat oder ob das die
(Er)Lösung ist.

Gruss,
Micha

von Steffen (Gast)


Lesenswert?

Hallo,

hat jemand einen Tipp für mich, wie ich die makefile so anpasse, dass 
alle Dateien die vom Compiler und Linker erzeugt werden in einem 
Extrapfad landen. Die Übersicht in Eclipse nimmt bei der Anzahl Dateien 
sehr ab.

Steffen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo @ Michael Volk,

Ich meine auch POST behebt das problem!!

@ Thomas Heldt

Normalerweise sollte es mit den MTU Wert 500 auch klappen! Habe hier 
drei Testboards wo ich viele Werte immer durch teste. Benutzt du den 
orginal Source Code oder einen abgeänderten?

Gruß
Ulrich

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hallo Uli!

Ich weiss noch nicht genau warum POST das Problem behebt,
aber ich forsche noch.

Sag mal, gab es in webpage.h nicht mal eine Tabelle der
Seiten? Ist das aus bestimmten Gründen rausgeflogen?

Gruss,
Micha

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Ich nutze einen geänderten, die Änderung ist das ich nicht eine Webseite 
sondern 2 habe, setzte ich den MTU-Wert auf 500 wird die erste Seite 
nicht geladen sondern immer nur die 2. Seite (Defaultvorgabe).

Es scheint als ob der Header dann nicht komplett ist wenn er ausgewertet 
wird.

Aber ich werde am Wochenende mal den Code komplett durchschauen ob ich 
da evtl. eine Änderung von dir nicht drin habe.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Mit der 1.0.20, also MTU-Wert 600 und kleinerem Auth-Buffer klappt es ;)

Danke, super Arbeit.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

So habe es auch mal auf POST umgestellt und es klappt mit ein paar 
Anpassungen auch mit meiner 2 Seiten Konfiguration ;)

Also 1.0.20 läuft somit perfekt.

von Simon Hufnagel (Gast)


Lesenswert?

Hallo zusammen!

erstmal riesen Lob an Ulrich und die anderen Mitentwickler!!! Echt super 
Projekt!
Ich verfolge diesen Thread von Beginn an. Wenn ich die Leiterplatte 
endlich fertig habe (warte noch auf den Laminierer vom großen C für die 
Tonertransfermethode), dann werd ich ihn aufbaun und mich mal 
einarbeiten...

Kann man schon abschätzen, ob es möglich ist (von den Ressourcen her), 
dass der AVR mal WOL Packete senden können wird, damit man von unterwegs 
PCs zu Hause einschalten kann? Kenn mich bisher mit Ethernet noch net so 
gut aus, aber bin schon fleißig am Quellen lesen ;-)

Also bitte weitermachen!!

Simon

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo @Simon Hufnagel,

WOL sollte kein großes Problem darstellen. Ich werde mir das mal heute 
anschauen, und mal sehen ob ich an meinen Laptop WOL zum laufen bekomme 
um den ETH_M32_EX Webserver zu testen.

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Super Sache jetzt habe ich es geschafft bei jedem Start eine Mail zu 
versenden, also Verbindungsaufbau zu einem externen Server per TCP 
funktioniert auch super.

von Steffen (Gast)


Lesenswert?

@Thomas

Welche Quellen hast du für das Senden der Mails verwendet? Nur 
irgendwelche RFCs oder gibt es eine gute Beschreibung, was, wann und wie 
gesendet werden muss?

Steffen

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Steffen

Ich habe zum einen folgendes Beispiel genutzt:
http://www.tecchannel.de/kommunikation/e-mail/401772/index6.html

Dann in die RFC`s geschaut und einfach einen Ablauf programmiert der
einen festen Text als Mail versendet.

Dann habe ich mir die http_get.c angeschaut und als Grundlage benutzt.

Ich habe aber auch bisher auf die Erkennung und Auswertung von Fehlern 
verzichtet da die Funktion mir nicht sehr wichtig ist, halt eine 
Spielerei das der Server mir nach einem Neustart(sollte ja nur bei einem 
Stromausfall vorkommen) eine Mail sendet.

Da meine Server an USV´s hängen sehe ich so das es einen Stromausfall 
gegeben haben muss, finde ich ganz praktisch ;)

von Thomas H. (pcexperte) Benutzerseite


Angehängte Dateien:

Lesenswert?

@Steffen

Ich habe hier mal den Code angehangen, in der config.h muss die IP des 
Mailservers wie folgt eingetragen werden:

#define SMTP_IP IP(aaa,bbb,ccc,ddd)

In der smtp.c sind die Mailadressen einzutragen bei XXXXXXXXX@YYYYYYYYY 
und die LL durch die resultierenden Längen zu erstzen.

in der main.c muss smtp.h included werden und dann kann nach dem die 
Interrupts aktiviert wurden per

mail_send();

die Mail versendet werden.

In das Makefile die smtp.c mit aufnehmen.

Viel Spaß beim Mail senden ;)

@Ulrich

Vielleicht kannst du ja auf diesem Code aufbauen und ihn integrieren ;)

von Steffen (Gast)


Lesenswert?

super Sache. Vielleicht muss ich demnächst auch mal meine Änderungen 
veröffentlichen. Leider haben die nicht mehr so viel gemeinsam mit dem 
Original und werden für dritte wahrscheinlich schwer zu verstehen sein.

Steffen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo @Thomas Heldt

Den Arp Request würde ich so gestalten, ohne Warteschleife.
1
//ARP Request senden
2
if (arp_request(MAIL_IP))
3
{
4
MAIL_DEBUG("MAIL Server gefunden!!\r\n");
5
....
6
....
7
....
8
return;
9
}
10
MAIL_DEBUG("Kein MAIL Server gefunden!!\r\n");
11
return;

Gruß
Ulrich

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Hallo, hat einer zufällig die Webpage schon so modifiziert, dass man 
dort auch den Status der Lampen sieht, also ob sie an oder aus sind?? 
Würde ich zwar auch noch hinkriegen, aber wahrscheinlich müsste ich da 
etwas "rumprobieren". Da aber die Programmierdauer ca. bei 3 Minuten 
liegt (bei mir jedenfalls), wäre das etwas lästig. Naja und wenn einer 
das schon hat, könnte ich mir das sparen...


Grüße Henning

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Danke, habe es mal geändert, hatte es so aus dem experimentellen Code 
übernommen und dachte es hat einen Sinn warum du extra die Schleife 
eingebaut hast ;)

von Steffen (Gast)


Lesenswert?

Hallo Henning,

Ich habe meinen Code gerade nicht da, aber vielleicht hilft dir ja das 
Prinzip wie ich es mache weiter:

Ich führe zusätzlich zu %VA@xx noch %VI@xx, das I (großes i kein kleines 
L) sagt mir, dass entweder der Text "EIN" oder "AUS" an die Stelle 
%VI@00 kopiert wird, je nachdem, ob die var_array[xx]==0 (AUS) oder !=0 
(EIN) ist.

dafür habe ich eine weiter Prüfroutine für %VI@ geschrieben, die der 
originalen Überpüfung für %VA@ sehr ähnlich ist. Nur der memcpy ist 
angepasst über eine if Bedingung (soweit ich mich erinnere):
1
if(var_array[ b]==0)
2
  memcpy (Ziel, "AUS\0", 4);
3
else
4
  memcpy(Ziel, "EIN\0", 4);

der Rest ist genauso wie die Originale Behandlung von %VA@. Vielleicht 
hilft dir das als Idee.

Übrigens, so ähnlich habe ich es auch gemacht, um in einer 
Radiobutton-Gruppe den vorausgewählen Wert anzuzeigen, z.B. den Kringel 
bei Ein oder Aus zu machen (ich schalte meine LEDs damit gezielt ein 
oder aus).
Ich verwende dort die Syntax %VR@xxy, wober R für Radiobuttons steht, xx 
für die Vergleichsvariable und y für den Wert den Variable haben muss um 
"checked" zu sein.

Achja, in den Zustand musst du dann im var_array aktuell halten.

Steffen.

von Sucher (Gast)


Lesenswert?

Hallo

@Henning läuft jetz dein Board mit dem Magjack, wenn ja was wars?

MfG
Achim

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Sucher wrote:
> Hallo
>
> @Henning läuft jetz dein Board mit dem Magjack, wenn ja was wars?
>
> MfG
> Achim

Ja es läuft, es lag nicht am Magjack oder dessen Anschluss. Es war der 
25Mhz Quarz am ENC. Dieser Quarz war ein 25mhz Obertonquarz von Reichelt 
mit 22pf (Bauform HC18), der mit 8,333Mhz lief, was sein Grundton ist.

Jetzt habe ich wieder ein Obertonquarz von Reichelt, im Prinzip genau 
der gleiche, aber Bauform HC49U-S. Er ist auch wieder mit 22pf bestückt.
Komischerweise klappt es mit dem und er schwingt, wie er soll auf 25Mhz

Also, an alle: VORSICHT MIT DEN REICHELT QUARZEN


Grüße Henning

von Sucher (Gast)


Lesenswert?

Hallo

@Henning kann man von Dir eventuell eine Platine(n) bekommen und die 
Eagle Dateien?

MfG
Achim

von Steffen (Gast)


Lesenswert?

Hallo,

hier mein Code, wie ich den Zustand von Variablen als Text und in 
Radiobuttons darstelle:
1
            //Ersetzen der Variablen %VI@00 bis %VI@09 durch "EIN" oder "AUS"
2
          if (strncasecmp_P("%VI@",http_entry[index].new_page_pointer-1,4)==0)
3
          {
4
            b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
5
            b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);  
6
7
            if(var_array[ b] !=0 )
8
              memmove(&var_conversion_buffer, "EIN\0", 4);
9
            else
10
              memmove(&var_conversion_buffer, "AUS\0", 4);
11
12
            str_len = strnlen(var_conversion_buffer,MAX_VAR_ARRAY);
13
14
            memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
15
            a += str_len-1;
16
            http_entry[index].new_page_pointer = http_entry[index].new_page_pointer+5;
17
          }
18
            //Einsetzen der Variablen %VR@00x bis %VR@09x durch checked wenn var_array[00..]=x
19
          if (strncasecmp_P("%VR@",http_entry[index].new_page_pointer-1,4)==0)
20
          {
21
            b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
22
            b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);  
23
24
            if(var_array[ b] == (pgm_read_byte(http_entry[index].new_page_pointer+  5  )-48))
25
              memmove(&var_conversion_buffer, "checked\0", 8);
26
            else
27
              memmove(&var_conversion_buffer, "\0", 1);
28
                
29
            str_len = strnlen(var_conversion_buffer,MAX_VAR_ARRAY);
30
            memmove(&eth_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
31
            a += str_len-1;
32
            http_entry[index].new_page_pointer = http_entry[index].new_page_pointer+6;
33
          }

Den Teil für die Radiobuttons kann man sehr einfach einsetzen:

 <input type="radio" name="LED1" value="0" %VR@080><br>
 <input type="radio" name="LED1" value="1" %VR@081><br>

Nun werden zwei Radiobuttons erzeugt und abhängig vom Wert in der 
Variable im var_array[08] wird bei 0 oder 1 das Wort "checked" 
hingeschrieben. Das bewirkt, dass bei dem ausgewählten Radiobutton der 
schwarze Punkt vorselektiert ist. Das funktioniert auch mit Werten bis 
zur 9.

Steffen.

p.s. Wie kann ich einem "Your post seems to contain Spam: "[ b]"." 
entgehen?

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

Sucher wrote:
> Hallo
>
> @Henning kann man von Dir eventuell eine Platine(n) bekommen und die
> Eagle Dateien?
>
> MfG
> Achim

Layout liegt auf meinem Uni-Space 
http://www-public.tu-bs.de:8080/~y0027190/, es ist aber noch ne 
vorläufige Version.
Meine neue Version ist fast fertig, aber die lässt sich dann nicht mit 
der Eagle-Light, die wohl die meisten hier haben, öffnen, da diese exakt 
für die
"SD 10 SW" oder "SD 10 GR" Gehäuse gelayoutet ist. Sprich, die Platine 
ist zu groß für die Light-Version

Habe ich das Richtig verstanden, dass ich dir eine ätzen soll?

Gruß Henning

von Steffen (Gast)


Lesenswert?

Eine weitere Frage:

Habt ihr auch solche Erweiterungen der Html-Syntax? Lohnt es sich, 
vielleicht eine Übersicht und deren Umsetzungen zu sammeln, damit wir 
einheitlich bleiben, und nicht immer ein ganzer Abend drauf geht, die 
Änderungen von Ulrich in den eigenen Server zu investieren ;-) (was 
keine Kritik sein soll)?

Hier meine Syntaxerweiterungen:

%VA@xx - Original von Ulrich

%VI@xx - Ersetzen durch Ein oder Aus entsprechend des Variablenwertes

%VR@xxy - Ersetzen durch das Wort "checked" wenn die Variable
          var_array[xx]==y ist.

%VT@xx - EXPERIMENTAL Ersetzen durch ein Wort aus einer Textliste,
         Variable var_array[xx] zeigt auf die Stelle in der Liste
         (z.B. sehr kalt, kalt, mittel, warm, heiss: abhängig vom
         Variablenwert)

Idee:
%VC@xx - Farbe in Abhängigkeit eines Variablenwertes (0 = #rot,
         1 = #grün, oder es wird direkt eine Farbe gespeichert)

Vielleicht habt ihr ja noch weitere Ideen. Übrigens, um nicht allzuviel 
Performance zu verlieren, checke ich in jedem Durchlauf nur, ob ich 
gerade eines von den seltenen %-Zeichen habe, nur dann führe ich weitere 
Kontrollen nach %V...@durch, ich denke, dadurch hält sich der 
Geschwindigkeitsverlust in Grenzen.

Steffen.

von Sucher (Gast)


Lesenswert?

Hallo

@Henning von "SOLL" kann keine Rede sein! Falls möglich hätte ich an 2 
Interesse. Irgendwie wurde ja immer wieder von Sammelbestellungen 
geredet, aber da läuft wohl nichts (leider). Mit Ätzen ist bei mir 
nichts drin.

MfG
Achim

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

@Steffen, danke erstmal für deine Hilfe. Leider habe ich mich in den 
Gesamtcode noch nicht richtig eingearbeitet, da ich das Ding aufgrund 
von Hardarebugs erst gestern zum laufen bekommen hab. Ich dachte, dü 
könntest mir evntl. die fertigen files übermitteln.

Deine Idee so etwas zu sammeln find ich gut, denn nur so wird das 
Projekt vorrangetrieben und es muss nicht jeder das Rad neuerfinden.

Gruß Henning

von Sucher (Gast)


Lesenswert?

Hallo

@Henning habe mal den Schaltplan angeschaut. Hast Du bewußt auf die 
Beschaltung an VCC/AVCC auf die 10uH und 100nF verzichtet?

MfG
Achim

Ne andere Frage: Bringt das was vom Webserver nur ne "XML" zu schicken 
und im Browser mit ner "xsl" datei nach HTML wandeln. Hat das schon mal 
jemand in Erwägung gezogen? Leider habe ich (noch) keinen solchen 
Miniwebserver um das auszutesten..

von Steffen S. (Gast)


Lesenswert?

@Steffen:

Wie kann ich den Zustand EIN oder AUS auf der Seite anzeigen, um den 
Wert einer Variablen, die den Zustand 1 für EIN und 0 für AUS annimmt?

von Werner B. (Gast)


Lesenswert?

Ref.: @Achim

Da will einer unbedingt Stylesheets schreiben ;-)
Auch wenn XSLT ein echt gleiles Verfahren ist, ist der 
Einarbeitungsaufwand wegen ein paar Webseiten für die Mehrheit der 
Anwender viel zu groß.
Aber wer es sich antut kann viel Platz im Flash sparen und Performance 
gewinnen, da die Ladezeiten wesentlich kürzer werden. Im Grunde brauchst 
du ja nur den <HTML/> - Teil durch dein <?xml/> zu ersetzen und das 
Stylesheet von einem anderen Host ziehen.

von Steffen (Gast)


Angehängte Dateien:

Lesenswert?

hmmm...fertigen Code?

Das Problem ist, dass bei mir einige Änderungen am Gesamtsystem 
durchgeführt wurden. Aber ich sende einfach mal, was ich habe:

Änderungen (die mir gerade einfallen):
 - Ansteuerung eines ks0108-Displays über die stdio (ich hab es mal raus
   genommen, und hoffe, dass es funktioniert
 - anderen Schaltplan --> andere enc28j60.c (ich hab mal die Original 
von
   Ulrich im Anhang mit drin)
 - cmd und telnetd sind raus (auch aus der makefile, kannst ja 
probieren,
   ob es mit beiden Dateien auch noch funktioniert)
 - httpd (eigene Auswertung des Headers, Datei für Websites und 
Pictures)

wahrscheinlich hab ich noch was vergessen. Vielleicht funktioniert es 
bei dir. Vielleicht hilft es ja als Beispiel... Keine Garantie für gar 
nichts.

Steffen.

von Steffen (Gast)


Lesenswert?

@Steffen S.

die Frage war ja viel einfacher seh ich gerade:

>Wie kann ich den Zustand EIN oder AUS auf der Seite anzeigen, um den
>Wert einer Variablen, die den Zustand 1 für EIN und 0 für AUS annimmt?

In der Website an die Stelle wo der Text stehen soll: %VI@04 --> es wird 
nun an der Stelle wo dieser String steht entweder "AUS" oder "EIN" 
geschrieben, je nachdem was auf var_array[04] steht.

Steffen.

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

@ Achim
Die Induktivität und den Kondensator brauchst du nur, wenn du PortA als 
ADC nutzt. (wobei ich nicht genau weiß, ob die beiden dann überhaupt 
unbedingt notwendig sind). Da ich nicht vorhabe mit dem Webserver 
irgendwelche analogen Sensoren zu betreiben habe ich LC einfach 
weggelassen, zur vereinfachung

Gruß Henning

von Sucher (Gast)


Lesenswert?

Hallo nochmal zu XML

@Werner B. nochmals zum Hintergrund:
 Ich kenne mich in der Atmel "Miniwebserver" Welt nicht aus. Meine Frage 
zielt darauf ab, Messwerte von so einem Miniwebserver zu empfangen und 
in eine "SQL Server 2005" Datenbank zu schreiben. Die Welt der 
Datenbank, XSL, XSLT etc. kenne ich, da ich beruflich damit zu tun habe.
Mein Problem ist es "Haus-Mess-Daten" mit so einem Miniserver zu 
erfassen und dort einzuschleußen. Das war der Hintergrund der XML Frage. 
Die Frage ist dann ob sich durch das Schicken einer XML-Antwort das 
Webserverprogramm vereinfachen läßt da Daten und Darstellung getrennt 
sind. Dazu sollte der "Miniwebserver" die (Mess)Daten über einen 
längeren Zeitraum puffern können (SD-Karte?) und dann werden die 
XML-Files(?) als "Bulk"-dowload in die Datenbank geleaden.

Aber das ist ne andere Baustelle und ich möchte diesen Thread nicht 
verwässern.

Falls jemand eine erprobte nicht SMD Platine (Henning? ULI? mit nem 
Magjack und I2C-Schnittstelle für Erweiterungen oder 2. Atmega drauf?) 
für ne Sammelbestellung zur Verfügung stellen (freigeben?) würde wäre 
das super. Routen und ätzen ist bei mir nicht drin, aber löten ginge 
grad noch. Die Software "draufbringen" und eventuell für mich abändern 
wäre vermutlich auch noch im Bereich des machbaren (Dank dem Forum).
Wie gesagt das ist nicht meine Welt. In diesem Zusammenhang aber ein 
DICKES LOB an das Forum....ich habe schon viel gelernt.
Insbesonderen Dank an ULI (!!!!) und seine Mitstreiter für das 
"Offenlegen" Ihrer Arbeit...

Respekt und vielen Dank
Achim

von STK500-Besitzer (Gast)


Lesenswert?

Sehe ich es richtig, dass die Firmware/Website immer per ISP-Adapter in 
den Webserver gebrannt wird?
Ich benutz(t)e den Siteplayer von netmedia.com, dessen Websites man per 
Loader-Programm über Ethernet ändern kann.
Vielleicht noch ein nettes Feature (nein, ich habe den Thread bisher nur 
oberflächlich verfolgt, falls das Thema schon dran war)
Schönes Projekt übrigens!

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ja die Firmware wird zur zeit nur mit ISP eingespielt!
In der neuen Version 1_0_22 habe ich das Kommandointerface um einige 
Befehle wieder erweitert. Eine Übersicht gibt nun der Befehl HELP oder 
?. EMail von Thomas Heldt wird auch noch kommen, allerdings muß ich da 
noch einige Änderungen vornehmen! Die ersten 4 Prototypenplatinen lasse 
ich gerade Herstellen. Wenn diese OK sind, werde ich etwa 50 Stück 
herstellen lassen, für eine Sammelbestellung!

Gruß
Ulrich

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Ulrich

Es wäre sicher sinnvoll die Mailadressen in die config.h zu übernehmen, 
evtl auch den Betreff und den Mailtext. Oder willst du es noch flexibler 
gestalten? ;)

Ich freue mich schon auf die Version mit Mail um zu sehen was ich hätte 
besser machen können.

Die V1.0.22 läuft übrigens auch super.

von Steffen (Gast)


Lesenswert?

@Ulrich

Nur zur Rückmeldung an dich: dein Onlineserver macht bei mir Probleme. 
Die Startseite kommt noch richtig, aber wenn dann eine Lampe gewählt 
ausgewählt ist und das Senden gestartet wird, kommt eine defekte 
Webseite zurück.

Mal was anderes, die Entwicklung habe ich bis jetzt immer mit Windows XP 
gemacht. Dabei konnte ich richtig zuschauen, wie die Seiten (inbes. das 
Bild Stück für Stück aufgebaut wird). Jetzt habe ich gerade mal mein 
Linux gestartet und war extrem überrascht, wie schnell die Seite 
aufgebaut wird...Das Bild war so schnell da, dass ich fast den Eindruck 
hatte, es kam aus dem Cache (geht aber nicht, da ich Linux das letzte 
mal VOR der Entwicklung und dem Aufbau des AVR-Webservers gestartet 
hatte...

Steffen

von Steffen S. (Gast)


Lesenswert?

Ist euch auch schon aufgefallen, dass die Seite viel schneller läd, wenn 
man unter Linux auf den AVR-Webserver zugreift?
Liegt das an dem TCP-Stack von Windows, weil es dort langsamer geht?

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Steffen und Steffen S.

Ich habe einfach den MTU-Wert wieder hoch gestellt und er rennt unter 
Windows als auch unter Linux ;)

Ich nutze den 644er, ob er beim 32er klappt kann ich nicht sagen.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Habe nun die Version 1.0.23 online habe einige eurer Änderungen 
übernommen!
Desweiteren die Verwaltung der Webseiten über eine Tabelle. Habe nun 2 
Seiten die aufgerufen werden können.

Gruß
Ulrich

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo @Steffen S.

Das liegt daran das Linux die ACK Packete schneller versendet als 
Windows.

Zum Thema AVR Webserver und Geschwindigkeit habe ich eine gute
Studienarbeit gefunden (Seite 63 - 64). (schonmal gepostet in diesem 
Thread)

http://www.uni-koblenz.de/~physik/informatik/studi...

Gruß
Ulrich

von Steffen S. (Gast)


Lesenswert?

@Ulrich:

Danke für den Hinweis, werd ich mal durchlesen.

Was mir auch aufgefallen ist, wenn man den Link zum einschalten direkt 
sendet: http://192.168.0.40/?LED1=1&LED2=0&Submit=Senden
Dann geht die LED an, ohne dass man das Passwort eingeben muss.
Die Passwort-Abfrage kommt zwar, aber die LED geht sofort an.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

einfach eine IF-Abfrage einfügen:
1
//Schaltet Ausgänge am AVR je nach Headerinhalt
2
//oder Startseite (POST) Schaltdaten am Ende vom Header
3
if((http_entry[index].http_auth)
4
{
5
  if (strcasestr((char*)&eth_buffer[a],"LED1=1\0")!=0){PORTA ^= (1<<PA0);}
6
  if (strcasestr((char*)&eth_buffer[a],"LED2=2\0")!=0){PORTA ^= (1<<PA1);}
7
  if (strcasestr((char*)&eth_buffer[a],"LED3=3\0")!=0){PORTA ^= (1<<PA2);}
8
}
9
break;

Gruß
Ulrich

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

@ Achim,
du kannst mit meinem Layout machen was du willst, ich habe es aber 
selber noch nicht 100% getestet. Für eine Herstellungsfirma währen 
bestimmt einige Punkte kritisch, zB. DRC oder meine schlampig 
gelayouteten Drahtbrücken. Der Link zu dem Layout ist ja weiter oben 
irgendwo in diesem Thread

--Ich nehme für nix die Verantwortung--


Gruß Henning

von holger (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal eine modifizierte 1_0_20 Version die HTM
Seiten von MMC liest. Der Parser zum einfügen
von Variablen in Seiten von MMC fehlt aber noch :(

Unter Linux dauert das laden einer Seite mit 10 Bildern
bei 30-70kB pro Bild ca. 5s. Unter Windows 30s.

@ Ulrich
Der Webserver läuft superstabil. Ich hab da schon einige MB
durchgeblasen.

von Steffen S. (Gast)


Lesenswert?

@Ulrich:

Danke, funktioniert.

von John S. (linux_80)


Lesenswert?

Hallo,

hat hier schon mal jemand vorbeigeguckt:
http://benshobbycorner.nl/
da könnt' man sich fast noch'n Paar Ideen holen ;-)

von Steffen S. (Gast)


Lesenswert?

Funktioniert wirklich stabil das Ding.
Allerdings muss ich ihn manchmal ein paar mal resetten, bis er im Netz 
erreichbar ist. Kann das an der Initialisierung des Stacks liegen?

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Das liegt nicht am Stack sondern an dem Netzwerktreiber! Mit einer 
RTL8019 Karte funktioniert es ohne Probleme. Mit dem ENC28J60 geht nach 
dem start und einem Ping z.B. das erste Packet verloren, aber dann läuft 
er durch. Einen Reset muß ich allerdings nicht durchführen.

Gruß
Ulrich

von Steffen S. (Gast)


Lesenswert?

Das kann ich leider nicht bestätigen, manchmal startet er einfach nicht 
richtig und ist dann auch nicht erreichbar. Auch nicht nach mehreren 
Pings.

von Micha .. (micha68) Benutzerseite


Lesenswert?

@Sreffen S.

Check doch mal die Debug-Ausgabenn per RS232.
Ich glaube er bleibt hängen, wenn die Verbindung
zum NTP-Server nicht klappte.

Passiert mir auch manchmal.

Gruss,
Micha

von Steffen S. (Gast)


Lesenswert?

@Michael Volk:

An den ntp-client habe ich auch schon gedacht und habe ntp_init und 
ntp_request mal rausgenommen, brachte aber leider auch nichts. Die 
Debug-Ausgaben brachten keine Fehlermeldung.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Habe die Version 1.0.24 online gestellt! Hier sollten die Initprobleme 
mit dem ENC28J60 beseitigt sein.

Gruß
Ulrich

von Steffen S. (Gast)


Lesenswert?

Habe die neue Version soeben getestet, leider treten die Probleme immer 
noch auf. Könnte es vielleicht ein Hardwaredefekt sein? Mein ENC28J60 
wird ziemlich warm, also er verbraucht ziemlich viel Strom, dadurch wird 
der LM317T auch sehr warm, habe ihn auf einen Kühlkörper montiert.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ich habe hier 4 Boards einmal ENC Version 2 und 5 mit Mega32 und Mega644 
sowie 2 Boards mit RTL8019 alle laufen Problemlos!! Es ist richtig das 
der ENC warm wird man muß nur mal ein blick ins Datenblatt werfen!

Gruß
Ulrich

von Steffen S. (Gast)


Lesenswert?

irgendwas scheint bei mir schief gelaufen zu sein. Jetzt blinkt die LED3 
auch nicht mehr, wenn Daten ankommen.Ich denke, dass mein ENC was hat.

von Micha .. (micha68) Benutzerseite


Lesenswert?

Hi!
So mal mein aktueller Stand:

Schalten von 8 LED´s und beschriften eines
4-zeiligen LCD-Dispalys übers Internet.

Dazu:
Wenn LED1=an, dann IP-Tabelle auf LCD-Display anzeigen
Wenn LED2=an, dann aktuelle Raumtemp auf LCD anzeigen, Sensor DS1621

LED8 fährt ein Servo und steuert die Webcam auf die Webserver-Platine
bzw. auf ein Breadboard, auf dem der Temp-Sensor seine Arbeit tut.

Die Webcam läuft über einen PC :)

Viel Spass beim probieren,
Micha

http://mikrocontroller.homedns.org

von Micha .. (micha68) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hi!
Wegen einigen Anfragen hier der Code.

Der Code basiert auf Version 1.04 von Uli, ist also etwas älter.

i2c ist von mir, ebenso servo.

lcd ist aus der Codesammlung

KEINE GARANTIE :)

Gruss,
Micha

von Steffen S. (Gast)


Lesenswert?

Was müsste ich am Source ändern, wenn ich die 3com 3c5x9 Karte auf dem 
ISA-CTRL-Board von Holger Buss betreiben möchte? Ist das überhaupt so 
ohne weiteres möglich?

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo Steffen S.

Das ist zur Zeit nicht möglich nur die Anbindung einer RTL8019 Karte, es 
sei denn du schreibst den Code für 3com um.

Gruß
Ulrich

von Henning S. (Firma: www.ags.tu-bs.de) (henning85)


Lesenswert?

@ Achim & Co.

Moin,
falls jetzt noch Interesse besteht, hab mal mein Final-Magjackboard 
geupt.
Habe es abr noch nicht geätzt, sprich, es ist noch nicht getestet. Werde 
dann aber, wenn ich Resonanz spüre, hier bescheidgeben, wenn ich es 
gebaut hab und es läuft.

http://www-public.tu-bs.de:8080/~y0027190/final%20board%20for%20123mmx71mm%20box-%20not%20tested/

Gruß Henning

von Peter Z. (flexopete)


Lesenswert?

@ henning
also mich würde es interessieren
gruss flexopete

von Sucher (Gast)


Lesenswert?

Hallo

@Henning ich habe auf jedenfall Interesse, super wäre ne 
Sammelbestellung.

MfG
Achim

von Steffen (Gast)


Lesenswert?

Hallo Mitstreiter :-)

hat sich von euch schon mal jemand Gedanken gemacht, wie man 
Zeitverläufe einfach und effizient darstellen kann? Zum Beispiel, wie 
sich ein Messwert über die Zeit verändert?

- Tabellen mit unterschiedlichen "Füllständen" nebeneinander wären 
wahrscheinlich ab 10 bis 20 Werten zu aufwendig und ineffizient (lange 
Ladezeiten).

- Bei Bildern sehe ich das Problem der Erzeugung und meist noch der 
Kompression (Simon hatte bei seinem Server ein bmp erzeugt (glaube ich)) 
und dem damit verbundenen Zwischenspeichern auf nem mega32

- gibt es mit Java-Script einfache Möglichkeiten?

- Könnte man auf SVG oder ein anderes Vektor-Format ausweichen?

- Welche Bildformate werden von gängigen Browsern eigentlich angezeigt? 
(gif, jpg, png, bmp, svg, ...???)

Steffen.

von Thomas H. (pcexperte) Benutzerseite


Lesenswert?

@Steffen

Ich mach mir zur Zeit erst einmal Gedanken die Messwerte z.b. stündlich 
zu speichern, ich habe am aktuellen Board keinen SD-Slot und werde die 
Messwerte wohl im EEPROM speichern.

Dann werde ich sie mit dem Balken GIF darstellen, die Ladezeit dürfte 
nicht ansteigen weil der Browser das Bild normalerweise nur beim ersten 
Mal lädt und danach aus dem Cache nimmt.

Sobald ich wieder Zuhause bin werde ich hoffentlich bald ein Board mit 
SD-Slot fertig haben und dort dann die Messwerte speichern.

Eine Darstellung als "Kurve" wäre natürlich unheimlich toll, aber bei 
mir wird langsam der Speicher eng im m644er ;)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Steffen wrote:
> - gibt es mit Java-Script einfache Möglichkeiten?

http://www.liquidx.net/plotkit/

von holger (Gast)


Lesenswert?

@ Ulrich
>Habe die Version 1.0.24 online gestellt!

Coole Idee Hilfetexte in cmd.c hinzuzufügen.
Sind ja NUR 200 Bytes RAM. Schmeiß das bitte schnell wieder raus.

Pack die Hilfe doch einfach in eine help.txt.
Kann man sich dann ausdrucken und offline lesen.

>Ich mach mir zur Zeit erst einmal Gedanken die Messwerte z.b. stündlich
>zu speichern, ich habe am aktuellen Board keinen SD-Slot und werde die
>Messwerte wohl im EEPROM speichern.

Zu EEPROM und SD hätte ich da noch ein paar Anmerkungen:
Der derzeitige Stack läuft zu 100% in Interrupts.

Probleme:
Ich kann zur Zeit Seiten z.B. von einer SD lesen.
Das passiert im Interrupt. Die SD kann ich aber, weil
der Stack komplett in Interrupts läuft, nicht beschreiben !
Warum nicht ? Weil ein ETH Interrupt mir die Schreibroutine
jederzeit unterbrechen kann. Das gleiche gilt fürs EEPROM.

Ein Zitat was ich hier im Forum mal gefunden habe:
"Interrupts so lang wie nötig und so kurz wie möglich."

Denk mal drüber nach Ulrich.

von Steffen (Gast)


Lesenswert?

Hallo,

gibt es eigentlich eine Mindestlänge für eine Nachricht, die ich mit 
Daten füllen muss, oder werden fehlende Zeichen bis zur Mindestmenge 
durch nullen oder Leerzeichen ersetzt? Ich konnte dahingehend nichts 
finden.

Aufgefallen ist mir das, als ich einen ganz kurzen Header von 40 Zeichen 
senden wollte, da ist dann beim Client immer auch ein Teil von dessen 
Anfrage mit angekommen.

Gruß
Heiko.

von Ulrich R. (radiguli) Benutzerseite


Lesenswert?

Hallo,

Ja es gibt eine Mindestlänge von etwa 60 Bytes.

Gruß
Ulrich

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.