Datum: 27.10.2007 11:40
Angehängte Dateien:Hallo, Hier mal noch ein Webserver auf der Basis von dem ENC28J60 Chip und einem ATmega32 oder ATmega644 als Prozessor. Software zum Testen des Webservers ist auch schon dabei, sowie Bilder wie er fertig aussieht. Warum das ganze? Der Webserver hat eine einseitige Platine und kommt ohne SMD aus. Gruss Ulrich
Datum: 27.10.2007 17:15
Prima! Ich habe jetzt zwar schon einen funktionstüchtigen Webserver nach der ISA-CTRL-Platine und RTL8019AS als Ethernetcontroller, aber das hier ist mechanisch kleiner aufzubauen und auch von den Bauelementen her besser zu löten. Frage: Hast Du dort eine SD-Karten-Unterstützung mit drin? MfG Paul
Datum: 27.10.2007 18:35
Hallo, Noch ist keine MMC/SD Unterstützung enthalten. Gruß Ulrich
Datum: 27.10.2007 21:42
Ist das noch geplant mit MMC unterstützung?
Datum: 28.10.2007 11:33
warum habt Ihr die Restringe bei den Terminals so klein? etwas größere Restringe machen das Bohren und anschließende Löten etwas einfacher find ich.
Datum: 28.10.2007 13:16
Hallo! Gibt es irgendwie eine "einfache" Möglichkeit, wie bei USB-Hosts, einen virtuellen COM-Port zu erzeugen, der dann die serielle Schnittstelle deines Webservers ansteuert? So was ähnliches wie die CDC oder HID-Treiber bei USB wäre super. Ich hab aber noch nichts dergleichen gefunden. MfG Matthias
Datum: 28.10.2007 14:21
Danke danke danke danke danke danke danke Ulrich!!! Auf genau so einen Webserver habe ich von dir schon gewartet :-) ENC, AVR, einseitige Platine, kein SMD, funktionierende Software zum dran weiterprogrammieren. Einfach Perfekt! Stefan
Datum: 28.10.2007 15:01
Hallo, Das mit dem RS232 Port ist ein Ziel von mir dazu benutze ich einen fertigen Treiber von Lantronix. http://www.lantronix.com/device-networking/utiliti... Gruß Ulrich
Datum: 28.10.2007 15:13
Hi! Kann das Beispiel schon irgendwie Ein/Ausgänge des 644 steuern? Bin kein "C"-Mensch und habe im Quellcode auf den ersten Blick nix gefunden, wie das funktionieren sollte. Danke, Micha
Datum: 28.10.2007 15:51
Hallo, Im Beispiel macht er bisher nur http. Wenn ich halbwegs damit weiter komme stelle ich es Online. Gruß Ulrich
Datum: 29.10.2007 15:04
Hallo, ich nehme an, dass bewusst keine Quelldokumente für den Schaltplan und das Layout herausgegeben wurden. Ist beabsichtigt, dies noch zu tun? Ich könnte mir vorstellen, dass auf der Basis deiner Arbeit noch sehr einfach Änderungen vollzogen werden könnten. Beispielsweise könnten die bereits angesprochenen Restringe größer gemacht werden (oder durch "lange" Kupferflächen ersetzt werden) oder gleich Bauelemente statt der Lochraster eingesetzt werden (z. B. Motortreiber, HC595 um die Anzahl der Ports zu erhöhen, Stecker für Sensoren oder sonst was, Relaistreiber für die (12V-)Lampensteuerung per WLAN :-). Begeisterter Gruß von einem Gast.
Datum: 29.10.2007 16:04
Sehr gute Arbeit respekt ! Ich werde ihn demnächst aufbauen. Aber darf ich mal fragen, was ich überhaupt mit so einem Webserver machen kann? Ist nicht böse gemeint, würde nur gerne einen Verwendungszweck wissen. Danke!
Datum: 29.10.2007 16:35
Hallo, Die Quelldateien gibt es auf meiner HP. Anwendungszweck: Der aktuelle Source Code schaltet über den Webserver den Port A. Dieses erfolgt sogar bei mir übers Internet. Also kann ich bei mir zu Hause das Licht an- und ausschalten :-) Gruss Ulrich PS: Den aktuellen Source Code werde ich immer nur auf meiner HP vorstellen. Ich will diesen Server nicht unnötig mit Dateien belasten.
Datum: 29.10.2007 17:12
da hätte ich ja gleich mal auf die Idee kommen können, auf deiner Site zu schauen :-( Schaut super aus. Gast.
Datum: 29.10.2007 18:37
Ansich nicht schlecht...Hab mir die Sourcedateien nicht angekuckt aber wo werden die Webseiten abgespeichert? Wird der ENC gepollt oder läuft das über Interrupt? Gruß Maik
Datum: 29.10.2007 19:17
Hi! Ich würde die Schaltung gerne nachbauen. Wo bekommt man denn die speziellen Teile wie den Übertrager oder den ENC? Danke und Gruss, Micha
Datum: 29.10.2007 20:59
Wie sieht es mit dem Übertrager aus? Wo bekomme ich diesen Typ? Oder sind die auf den Netzwerkkarten alle ähnlich, do dass ich jeden verwenden kann (bis auf die Pinbelegung natürlich). Kann mir das jemand kurz erläutern? Danke Gruß Thomas
Datum: 29.10.2007 21:00
Eine Frage am Rande: Ich habe gerade den Quellcode überflogen und mir ist aufgefallen, dass die httpd nirgends aufgerufen wird. Hat das einen Grund oder hab ich beim überfliegen nur was übersehen?
Datum: 29.10.2007 21:18
Hallo,
Doch httpd wird aufgerufen nur etwas anders als sonst.
in Stack.c wird die Funktion in eine Tabelle eingetragen:
PORT_ITEM PORT_TABLE[] = // Port-Tabelle
{
{80,httpd}, //erst der Port dann die aufzurufende Funktion
{23,telnetd},
{0,0}
};
So habe ich es auch mit den Kommandos gehalten.
Gruß
Ulrich
Datum: 29.10.2007 21:54
Ja ok Danke, dann lag's echt nur am überfliegen. Zum Glück gibt es keine dummen Fragen ;-)
Datum: 29.10.2007 23:40
>>Wie sieht es mit dem Übertrager aus? Wo bekomme ich diesen Typ?
Den kannst du auch von csd-electronics bekommen. Ich habe schon mehrere
PC-Karten ausgeschlachtet und die Übertrager hatten eigentlich immer
funktioniert.
Datum: 30.10.2007 08:40
> Also kann ich bei mir zu Hause das Licht an- und > ausschalten :-) Link bitte veröffentlichen, das will ich auch mal ausprobieren ;-))) an, aus, an, aus, an, aus, an, aus ... (Welcher Blödmann fummelt da ständig an meinem Licht herum ...)
Datum: 30.10.2007 09:05
Ein dickes "Danke" an Ulrich. Das baue ich demnächst nach, habe ich schon länger vorgehabt und muss nun nicht bei "null" anfangen. Super!
Datum: 30.10.2007 09:09
Hi! Im CSD-Shop findet man den Übertrager, wenn man unter Suche FB2022 eingibt. http://www.csd-electronics.de/de/index.htm Gruss, Micha
Datum: 30.10.2007 09:10
So was hatte ich schon lange vor. Jetzt muß ich nicht ganz von null anfangen und kann gleich richtig einsteigen. Danke dafür!!!
Datum: 30.10.2007 10:49
Hi! So, Teile sind bestellt :) Allerdings habe ich den Ferrit nicht gefunden, ist der unbedingt notwendig? Ich werde den 644 erst mal auf dem STK500 aufbauen und eine kleine Platine mit dem Netzwerkkram basteln. Mal sehn, ob das klappt... Gruss, Micha
Datum: 30.10.2007 11:24
Angehängte Dateien:Hier die Bestellnummern: reichelt als Excel, CSD: Anzahl Artikel E.- Preis G.- Preis 1 ATMEGA644-20PU Nummer: 30174 6.95 EUR 6.95 EUR 1 ENC28J60/SP Nummer: 30362 5.95 EUR 5.95 EUR 1 FB2022 Nummer: 17350 1.95 EUR 1.95 EUR Gruss, Micha
Datum: 30.10.2007 12:36
Vielen Dank für die Liste, aber irgendwie fehlt die RJ-45 Buchse (oder hab ich die übersehen ?) Viele Grüße, Festus
Datum: 30.10.2007 12:43
Hi! Stimmt, die habe ich auch nicht gefunden. Hat jemand einen Tipp? Ausserdem seht ihr, dass ich von den Kleinteilen wie C und R jeweils 10 bestellt habe... Gruss, Micha
Datum: 30.10.2007 13:04
Passt nicht diese von CSD? "Modular Buchse 8 polig print"
Datum: 30.10.2007 13:06
Sieht gut aus, habe ich leider nicht gesehn...
Datum: 30.10.2007 13:22
>Allerdings habe ich den Ferrit nicht gefunden, ist der >unbedingt notwendig? Wird zwar vorgeschlagen, ich hab nun aber schon etwa 10 ENCs verlötet und einfach eine Drahtbrücke verwendet und es hat immer einwandfrei geklappt...ausprobieren :-)
Datum: 30.10.2007 17:16
>Allerdings habe ich den Ferrit nicht gefunden, ist der >unbedingt notwendig? Der Ferrite Bead oder auch Ferritperle zwischen dem Übertrager und der Versorgungsspannung dient zum Filtern von hochfrequenten Signalen auf der Versorgungsspannung und sollte eine 60 Ohm Impedanz bei 100 MHz besitzen. Zu Testzwcken kann man diesen weglassen. Es ist allerdings sehr zu empfehlen diesen mit zu verlöten...gibts bei Segor. Da gibt es auch RJ45 Buchsen mit integrierten Übertrager von HALO electronics also nochmal platzsparend!
Datum: 30.10.2007 17:18
Sirko wrote: > Passt nicht diese von CSD? > "Modular Buchse 8 polig print" Alternativ gibts bei CSD auch den "Magjack" direkt mit Übertrager eingebaut.
Datum: 30.10.2007 18:13
Hallo, RJ45 Buchsen mit integrierten Übertrager wollte ich nicht benutzen. Auch wenn diese ein Platzvorteil haben. So kann fast jede alte Netzwerkkarte vom Schrott wieder verwertet werden. Auf diesen findet man fast immer einen passenden Übertrager, Netzwerkbuchse und LEDs. Und wenn nicht bekomme ich die Teile zumindest auch bei Reichelt. Gruß Ulrich
Datum: 31.10.2007 11:04
An Stelle der Ferrite Bead kann man auch "Festinduktivität 1 µH 0,7 A" von CSD nehmen. Ist ja in erster Linie dazu, um Störungen aus der Versorgung zu filtern und nicht noch verstärkt ans Netz abzugeben. Sind auch gut zum filtern der Analog-Referenspannung am AtMega u.ä.
Datum: 31.10.2007 11:16
@Ulrich Hmm, Reichelt ist diesem Zusamenhang wohl (noch)nicht die Quelle erster Wahl. Die muss man wohl noch überzeugen bezüglich des ENC28J60 und des Übertragers. Haben sie beides nicht. Und alte Hardware zu fleddern, geht so lange bis das die Sollbruchstelle wird. Ich weiss das aus leidvoller Erfahrung, stundenlanges Messen hätte ich mir sparen können, wenn "weniger Geiz, noch geiler" gewesen wäre. Ich denke schon, dass der MagJack zum genannten Preis(CSD) nicht schlechter als eine Einzellösung ist. Ich hoffe, Du hast hier ne Lawine losgetreten und man kann bald div. Webserverlösungen und deren Software bewundern.
Datum: 31.10.2007 11:37
Hi, wieder mal ein super Projekt von Ulrich. Mir kam die Idee das FTP Protokoll zu Implementieren um dann Daten von einer SD-Karte über Nacht auf den FTP Server zu übertragen. Somit müsste nicht immer ein PC bei mir laufen. Gruß Rene
Datum: 31.10.2007 15:19
hi, wie groß ist das Interesse am Thema "Internetradio"? ich denke das wär wirklich mal ein nützliches projekt, für mich nur leider in sehr großer ferne :-). https://helixcommunity.org/projects/datatype/ m.
Datum: 31.10.2007 15:23
Hallo maddin, ich hätte da mit Sicherheit auch Interesse dran. Wenn's da mal was gäbe.... samson2
Datum: 31.10.2007 15:52
hmm, tja so ist das... verweisen wollte ich eigentlich hier her: Beitrag "Internet-Stream Radio" aber ich denke dann wird man wohl einfacher bedient sein, es zu kaufen. klar - wie so oft, die herausforderung treibt einen ja dazu, dinge selber zu machen, anstatt sie zu kaufen, doch das ziel ist mir allein zu fern und zeitintensiv.... -schnittstelle -protokolle -datenstromdecodierung -senderauswahl -und was weiß ich noch alles.... m.
Datum: 31.10.2007 22:25
maddin @Torsten Enkelmann "Internet-Stream Radio" Hi Falls das Interesse am Thema "Internetradio" immer noch vorhanden sein sollte, kann ich folgende Informationen über ein Projekt (A low cost portable wireless Internet radio receiver) zur Verfügung stellen. Dieses WLAN Radio arbeitet mit dem Shoutcast Stream Protokoll und besteht aus folgenden Komponenten: AVR Microcontroller Hardware MP3 Decoder PCMCIA WLAN Card (Prism 2.5 chipset) 128 x 64 SED LCD-Display Lithium Battary ---- PWM Drive for battery recharging Battery Voltage & Current Sensor Supply Voltage Regulator C Code for the IAR AVR Compiler Voy
Datum: 31.10.2007 23:25
Klingt sehr interessant. Also mindestens ansehen würde ich mir es :-)
Datum: 01.11.2007 12:40
>http://www.gurulib.com/_project/wmp3/index.htm
wow - und das alles mit nem kleinen Atmel :-)
Mir würde es schon mal reichen, wenn ich den kleinen Server von Ulrich
noch um den Anschluß eines Displays erweitern kann. Vielleicht dann noch
per Weboberfläche irgendwelche Texte eingeben...
Datum: 01.11.2007 14:07
Da noch ein Display dran zu hängen ist nicht weiter schwer. Ich hab eine ähnliche Platine (allerdings mit einem Mega128 und nahezu nur SMD) mit einem DOGLCD bei mir zu hause liegen. Leider nicht die Software noch nicht so weit wie die von Ulrich und irgnedwie komme ich nicht mehr so richitg zum weiterentwickeln.
Datum: 01.11.2007 16:57
Könnte man nicht die Hardware und Source von Guido Socher (A LCD display with ethernet interface / Tuxgraphics.org) für obiges Board anpassen?
Datum: 01.11.2007 19:10
Hallo Uli, Respekt zu deinem Projekt! Wie gross wäre deiner Meinung nach der Aufwand um deinen Server als "Ethernet-RS232 Gateway" laufen zu lassen? Es braucht eine "Benutzer-Oberfläche" auf die man per Ethernet und Browser in einem Netzwerk auf deinen Server zugreifen kann und dann kann man Ports am uC schalten... Leider habe ich im Moment noch wenig Ahnung von Ethernet, ich kann deinen aktuellen Stand noch nicht nachvollziehen. Gruss, erik
Datum: 01.11.2007 20:35
Hallo, also das mit dem Display sehe ich rein Hardwaretechnisch nicht als großes Problem. Stand alone habe ich so ein KS1080(?) Display mit 128x64 Pixeln schon mit der Bib von Ape (glaube ich) zum laufen bekommen. Ich sehe eher das Problem die Bib mit der Software von Ulrich zu verstricken, und dann vielleicht noch auf http-Anfragen eine Textmeldung zu erzeugen. Leider habe ich privat kaum Zeit für sowas, und auf Arbeit kann ich das meinem Chef auch nur schwierig als dienstlich sinnvoll verkaufen. Gast.
Datum: 01.11.2007 22:10
Mensch Ulli, ich bin ja mal froh, dass ich sehe, dass auch andere Menschen "Zeiger auf Funktionen" auf diese Art und Weise verwenden ;-) Bestens, Thomas
Datum: 02.11.2007 17:52
Tolle Sache, wenn das Layout jetzt noch als Postscript zur Verfuegung stuende koennte man sich das sogar mal nachbauen ;) Michael
Datum: 02.11.2007 18:17
Hallo @Michael G. Wie ich in einem anderen Thread lesen konnte ist dir das Bild zu pixelig, 600dpi reichen bei mir. Aber wer will kann sich ja selber ein File aus den Eagledateien erstellen. Aber nur für den privaten gebrauch! Zum vekaufen von Platinen aus meinem Layout das ist nicht so gedacht. Gruß Ulrich
Datum: 02.11.2007 18:43
Hallo Ulrich, und wo finde ich diese files? In dem angehaengten Archiv ist ja nichts bei und auf Deiner Homepage habe ich grad auch nichts gefunden. Mir wuerde im Prinzip ein Postscript schon ausreichen wenn Du das Layout nicht rausgeben willst. Gruss, Michael
Datum: 02.11.2007 18:51
Hallo Uli Magst du zu meiner Frage etwas oberhalb Stellung nehmen? Ich würde mich jedenfalls freuen :) Gruss, erik
Datum: 02.11.2007 18:57
Hallo @Erik, Der Webserver hat schon eine Webschittstelle zum schalten von Ports. Das mit der RS232 Schnittstelle und einem Display ist schon in arbeit. @Michael G. das Layout ist auf meiner HP, dieses haben schon viele Leute gefunden. Ich werde hier nicht jedes Layout Format veröffentlichen wie es jeder will. Gruss Ulrich
Datum: 02.11.2007 19:04
Vielen Dank Uli! Das tönt alles ausgezeichnet... Schreibst du es irgendwo hin, wenn es implementiert ist? Dann werde ich Anfangen, mich mit deinem Code internsiv zu beschäftigen, resp. versuchen es zu nachvollziehen.
Datum: 02.11.2007 21:15
Servus Ulli, was ich nicht ganz nachvollziehen kann, ist die HTTPD. Mir ist klar, wie Du die entsprechende Funktion im HTTPD Thread auslöst; jedoch ist mir nicht klar wieso Du das so machst. Wie kann ich nur meine Fraqe in Worte fassen? Warum springst Du bei "app_status == 1" ausgerechnet in die Funktion, warum "app_status == 2" ausgerechnet in eine andere? Prinzipiell kann man doch stets Daten senden, z.B. den html-File-Inhalt sobald ein PSH und ACK Flag vom Clienten kommt, oder nicht? Vielleicht kannst Du das noch ein wenig verdeutlichen. Danke
Datum: 03.11.2007 00:15
Hallo Thomas, Nach einer eingabe im Browser wird zuerst der Port in Server geöffnet. Client: SYN Server: SYN,ACK Client: ACK Hierbei wird die App. nicht gestartet. Erst jetzt erfolgt vom Client Browser ein GET HTTP also PSH Flag gesetzt app_counter = 1. Das Packet wird nun Stückchenweise zum Client gesendet. Bei jedem Stückchen empfange ich ein ACK. app_counter++ damit ich weiss welches Stückchen ich gesendet habe und als nächstes drann kommt. Wenn ich kein Ack vom Client empfange erfolgt irgendwann ein Timeout und Packet wird nochmal gesendet. Ist das Packet komplett gesendet wird der Port geschlossen. Gruß Ulrich
Datum: 03.11.2007 09:55
Hallo Ulrich, wiedermal ein sehr schönes projekt. nun habe ich leider schon 2 deiner vorherigen webserver...;-) aber nicht das die platine ein problem darstellen würde. aber da ginge mir eher eine doppelseitige platine durch den kopf. die mann sich auch über http://www.haka-lp.de/html/zwillingsangebot.html fertigen lassen könnte. und da währe ökonomisch die grösse von 100mm x max 79mm das würde dann dort 4-stück ergeben. schick ;-) und würde dann in 1/2 eurogehäuse-1 reinpasen. ich gehe nicht davon aus, das du selber platinen in umlauf bringen willst ? ;-) ich allerdings auch nicht! (höchstens die eagle.brd, falls ich die habe) Jürgen
Datum: 03.11.2007 09:58
Danke; das hab ich dann soweit. Also wäre es auch möglich, das Paket in eine Variable zu packen und in der create_tcp_paket Funktion aufzuteilen und somit ACK-Abhängig die Teil-Pakete auf den Weg zu schicken.
Datum: 03.11.2007 13:45
Hallo, in der Create_tcp_packet Funktion wird nichts aufgeteilt das geschieht vorher ! Gruß Ulrich
Datum: 03.11.2007 14:37
Hallo, schon klar; war nur so ein Gedanke von mir. Hast Du eigentlich noch Literaturverweise? Ich arbeite an meinem Stack meistens nur mit Wikipedia und Wireshark; aber so ein paar "Protokoll-Ablauf für Dummies" Referenzen täten manchmal schon gut. Thomas
Datum: 03.11.2007 14:46
Ja, zu ein paar nützlichen Links würde ich als Ethernet-Dummy auch nicht nein sagen.
Datum: 03.11.2007 15:17
Angehängte Dateien:Hallo alle zusammen, ich habe die cmd.c /cmd.h mal erweitert damit man sich über 3 neue Befehle jederzeit die eigene IP, MAC und ENC Version ausgeben lassen kann. Befehle: IP = zeigt eigene IP-Adresse MAC = zeigt eigene MAC-Adresse VER = zeigt Version des ENC28J60 an @Ulrich Wäre es möglich die beiden cmd.c / cmd.h in deine Version zu übernehmen? Ich hatte dir auch vor ein paar Tagen eine Mail geschrieben weil ich gerne deinen Haftungsauschluss-Text nutzen würde, habe aber leider nie eine Antwort erhalten :( Wäre es nicht besser in der main.c die Anzeige der eigenen IP-Adresse so zu realisieren damit die IP auch optisch korrekt angezeigt wird? usart_write("My IP: %1i.%1i.%1i.%1i\r\n\r\n",myip[0],myip[1],myip[2],myip[3]); Übrigens lerne ich an deinem Code eine Menge hatte nur Bascom benutzt bisher aber jetzt arbeite ich mich in C ein und da hilft dein Code ungemein!
Datum: 03.11.2007 17:45
Angehängte Dateien:Hallo, Deine drei Befehle habe ich mit aufgenommen. Das die IP angezeigt wird habe ich schon lange realisiert. Ich würde mal dem aktuellen Source Code herunterladen! Gruß Ulrich
Datum: 03.11.2007 18:03
@Ulrich Als Grundlage hatte ich die cmd.c aus der 0.93 genutzt, die sollte aktuell gewesen sein. Die Anzeige der IP-Adresse war nur beim Start drin, oder?
Datum: 03.11.2007 19:53
Hallo, Mit der neuen Version 0.95 von mir kann auch ohne Probleme über das Kommandointerface die IP geändert werden. Gruß Ulrich
Datum: 03.11.2007 20:07
@Ulrich Super Sache, besteht die Möglichkeit das die IP im internen EEPROM gespeichert werden kann und somit nach einem Stromausfall bedingten Neustart automatisch wieder die zuletzt eingestellte ist?
Datum: 03.11.2007 21:45
Hallo @Thomas Heldt, jetzt wird die IP auch im EEPROM gespeichert! Gruß Ulrich
Datum: 03.11.2007 21:52
Hi! Langsam!!! :) Ich komme nicht mehr mit... 3-4 Versionen pro Tag - Respekt :) Weiter so, Michael
Datum: 03.11.2007 21:55
@Ulrich Super !!! Ich lerne echt viel dadurch das ich das alles parallel auch probiere.
Datum: 03.11.2007 22:17
@Ulrich Ich arbeite hier auf meinem Board mit dem Takt des ENC28J60 und habe in der aktuellen Version die Taktfrequenz in der config.h angepasst aber dann stimmt die Ausgabe auf der seriellen Schnittstelle nicht. Erst wenn ich auch in der usart.h den Takt ändere klappt es, aber sollte nicht die erste Definition in der config.h ausreichen?
Datum: 03.11.2007 22:43
Hallo, include mal config.h in usart.h Gruß Ulrich
Datum: 03.11.2007 22:50
@Ulrich Danke, klappt ;) Wirst du doch sicher in der nächsten Version auch so machen und das define in der usart.h sparen, oder?
Datum: 04.11.2007 13:46
Mal eine Frage: wenn ich den ENC28J60, der Laut Datenblatt nur einen "10BASE-T port" besitzt, ohne Switch an ein 100BASE-T-Netzwerk anschließe, wird das ganze Netzwerk bis zum nächsten Switch auf 10MBit ausgebremst, ja?
Datum: 04.11.2007 13:48
Hallo, so ist es, aber wer benutzt noch einen Hub?? Gruß Ulrich
Datum: 04.11.2007 13:53
@Ulrich Habe mal eine Verständnisfrage, es ist ja nirgendwo ein Gateway eintragbar, ist es korrekt da ja nur Anfragen von extern an den Server kommen und er deshalb keinen Gateway im Netz braucht um die Anfragen zu beantworten? Ich möchte vom Internet aus über eine Portweiterleitung auf einer Fritz!Box auf den Server zugreifen, das sollte doch gehen, oder?
Datum: 04.11.2007 14:13
>Ich möchte vom Internet aus über eine Portweiterleitung auf einer >Fritz!Box auf den Server zugreifen, das sollte doch gehen, oder? Ob eine Portweiterleitung ausreichend ist, ist fraglich. Ich hatte mal einen Server auf einem PC aufgesetzt, dabei musste der Router(war keine Fritzbox gewesen) so eingestellt werden, dass er dem Serverpc die externe IP zuweist, da die Anfragen ja auch an diese gestellt werden. Es gab zwar die Möglichkeit unter den Portweiterleitungen eine für Http-Server (Port 80) einzurichten, dies hat jedoch nicht funktioniert. Kann natürlich auch ein Problem dieses speziellen Routers gewesen sein. >ist es korrekt da ja nur Anfragen von extern an den Server >kommen und er deshalb keinen Gateway im Netz braucht um die Anfragen zu >beantworten? Was du hier beschreibst ist die NAT: http://de.wikipedia.org/wiki/Network_Address_Translation Wenn die Portweiterleitung so funktionier, leitet der Router die externen Anfragen auf Port 80 an den Webserver weiter, der bekommt die so, als wären die vom Router gestellt, gibt seine Antwort dann an den Router, der trägt die IP des Anfragestellers ein und schickt das Päckchen auf seine Reise.
Datum: 04.11.2007 14:37
@Thomas Heldt: Ja mit der Fritz!Box ist das möglich - die NAT ist praktisch integriert. Einfach bei Internet->Portfreigaben eine neue Portfreigabe erstellen. Dort muss bei "von Port" 80, an Port die IP des Servers im LAN und "an Port" wieder eine 80 stehen. Die Pakete werden dann automatisch umgeleitet. Einen AVR-Webserver hab ich so zwar noch nicht betrieben, aber mit dem PC als Webserver hat es einwandfrei geklappt. Und der AVR-Webserver ist bereits in Arbeit :-).
Datum: 04.11.2007 14:41
@jemand und Randy N. Das die Portweiterleitung funktioniert ist mir klar, sorry da ist meine Frage wohl falsch verstanden worden, es geht mir darum zu verstehen wie der AVR-Webserver die Seite ohne einen Gateway zu kennen an den anfragenden Client ausliefern kann. Ich betreibe mehrere Server (Dienste) hinter der Fritz!Box und das NAT funktioniert super, aber alle Server haben halt auch die Fritz!Box als Gateway eingetragen, das ist in der Software für den AVR-Webserver aber nicht vorhanden, daher meine Frage.
Datum: 04.11.2007 14:49
Ups hab garnicht die Frage, sondern nur die Antwort meines Vorgängers gelesen, um dann zu sagen, es geht doch :-) Also ohne es jetzt genau zu wissen, würde ich sagen, dass dem Webserver der Gateway, um Anfragen von Clients aus dem Internet beantworten zu können, nicht bekannt sein muss. Wenn der Webserver allerdings selbst von anderen Servern im Internet Daten abrufen muss, muss er dies über den Gateway erledigen - und DANN braucht der dessen IP. Aber da das ja bis jetzt noch nicht in der Firmware implementiert ist, muss diese auch den Gateway nicht kennen - somit kann man den auch nirgends angeben.
Datum: 04.11.2007 14:51
@Randy N. Danke, genau so habe ich es mir auch gedacht ;)
Datum: 04.11.2007 14:57
Hallo, und genau so ist es. Gruß Ulrich
Datum: 04.11.2007 17:23
Hallo, So der aktuelle SourceCode baut via Telnet eine Verbindung zur RS232 Schnittstelle des AVRs auf. Eingehende Zeichen werden zur Tellnetapp. geschickt und umgekehrt. Somit kann ein virtueller Comport angelegt werden. Dazu benutze ich com0com und com2tcp. Gruß Ulrich
Datum: 04.11.2007 19:26
Hi! Super wäre jetzt noch die Möglichkeit, die aktuelle html-Seite bei Abruf mit aktuellen Infos, wie zB dem Zustand von Input-Ports, zu versehen. Aber das hast Du wahrscheinlich in Version 0.992 eh schon drin ;) gruss, Michael PS: Bin leider noch nicht zum testen gekommen, Controller ist noch nicht da :(
Datum: 04.11.2007 20:49
@Ulrich Wo werden den Diensten die Ports zugeordnet? Finde das irgendwie nicht :( Gruß Thomas Heldt
Datum: 04.11.2007 20:57
add_tcp_app(PORT, ....); Bitte mal genau lesen ! Sind auch Kommentare im Code ! Gruß Sven
Datum: 04.11.2007 21:12
@Sven Ja aber genau das verstehe ich nicht wie HTTP an Port 80 gebunden wird, ich sehe keine 80 oder so:
//Trägt Anwendung in Anwendungsliste ein void add_tcp_app (unsigned int port, void(*fp1)(unsigned char)) { unsigned char port_index = 0; //Freien Eintrag in der Anwendungliste suchen while (PORT_TABLE[port_index].port && PORT_TABLE[port_index].port!=0) { port_index++; } if (port_index >= MAX_APP_ENTRY) { DEBUG("Zuviele Anwendungen wurden gestartet\r\n"); return; } DEBUG("Anwendung wird in Liste eingetragen: Eintrag %i\r\n",port_index); PORT_TABLE[port_index].port = port; PORT_TABLE[port_index].fp = *fp1; return; } |
Auch sehe ich nur die leere Tabelle:
PORT_ITEM PORT_TABLE[MAX_APP_ENTRY] = // Port-Tabelle { {0,0}, {0,0}, {0,0}, {0,0}, {0,0} }; |
Ich würde es gerne verstehen denn ich steige von Bascom aus um und deshalb frage ich wenn ich etwas nicht verstehe/finde.
Datum: 04.11.2007 21:18
httpd.c:
void httpd_init (void) { ... //Serverport und Anwendung eintragen add_tcp_app (80, (void(*)(unsigned char))httpd); ... } |
Datum: 04.11.2007 21:48
Hallo, Die While-Schleife sollte so aussehen der Rest ist unsinn!!!!
//Trägt Anwendung in Anwendungsliste ein void add_tcp_app (unsigned int port, void(*fp1)(unsigned char)) { unsigned char port_index = 0; //Freien Eintrag in der Anwendungliste suchen while (PORT_TABLE[port_index].port) { port_index++; } |
Datum: 04.11.2007 23:12
Hallo Ulrich, habe das Wochenende genutzt und den Webserver mit Hilfe deiner Eagle-Dateien nachgebaut. Funktioniert prima! Allerdings bin ich mir nicht sicher, ob du nicht den falschen Spannungsregler kühlst, wenn ich mir deine Bilder ansehe ;-). Der ENC28j60 ist ja ein kleiner Stromfresser (Imax = 250mA lt. Datenblatt) und damit wird der LM317 ganz schön heiß. Bei mir nimmt die komplette Schaltung max. 220mA bei 8VDC auf. Vielen Dank für die Bereitstellung der Sourcen, Layouts und Pläne. Habe auch bei deinem Programm dazu gelernt. Grüße Gerd G.
Datum: 05.11.2007 06:13
Hallo Gerd G. Es stimmt der ENC28J60 nimmt recht viel Strom auf. Ich habe deshalb auch selbst den LM317 gekühlt, und nicht den LM78S05. Gruß Ulrich
Datum: 05.11.2007 14:20
Hallo @Ulli kannst du sagen, wieviel "Reserve"der "Stack" übrig läßt, um zum beispiel so 1-Wire Sensoren (DS18S20)anzuschließen? Oder via die 1-Wire Master DS2482-100 bzw. DS2482-800 mit I2C....ist das möglich? Kann man von dir so Platinen bekommen oder gibtst du sie in einen (Fertiguns)-Pool...dann müßten natürlich für dich kostenlose Platinen rausspringen.. bei so einer SUPER Arbeit. Danke Achim
Datum: 05.11.2007 18:06
@Ulrich Ich habe jetzt die Möglichkeit integriert einen SHT11 Sensor abzufragen, wie kann ich die Werte Temperatur und Luftfeuchte jetzt aus der Webseite anzeigen lassen? Die cmd.c habe ich schon erweitert so das ich die Werte über die serielle angezeigt bekomme. Ich möchte aber die beiden Werte halt auf der Webseite sehen, die Möglichkeit die Ports zu schalten ist für meine Anwendung nicht so interessant ;) Bin für jedem Tipp dankbar. Gruß Thomas
Datum: 05.11.2007 18:07
Hallo, Der Prozessor hat noch genügend Reserven für sowas!! I2C uvm. will ich auch noch anbinden. Über eine Sammelbestellung bzw. der Verkauf der Platine bin ich noch am überlegen. Der aktuelle SourceCode 1.0.2 funktioniert nun auch mit dem RTL8019 AVR Webserver von Holger Buss. Das Anzeigen von Werten über das Webinterface ist schon in arbeit! Bis zum WE ist es dann fertig. Gruss Ulrich
Datum: 05.11.2007 18:33
Hallo Ulrich, >Es stimmt der ENC28J60 nimmt recht viel Strom auf. Ich habe deshalb auch >selbst den LM317 gekühlt, und nicht den LM78S05. Mache ich auch. Aber auf dem Foto ist es anders herum. Da war der Kühlkörper am 7805, oder sehe ich das falsch? Ansonsten ist der Aufbau sehr einfach. Ich habe mir allerdings die Pads und teilweise die Leiterbahnen vergrößert, damit ich es einfacher habe. >Der aktuelle SourceCode 1.0.2 funktioniert nun auch mit dem RTL8019 AVR >Webserver von Holger Buss. Mal sehen, ob ich das am Wochenende mit dem M128-Server zum Laufen bringe.Ich habe da noch einen, der nicht im Dauereinsatz ist... Momentan bastle ich an der Anzeige der geschalteten Ausgänge. Aber ich bin mit meiner Version schon wieder veraltet. Mann, bist du schnell! Gruß Gerd
Datum: 05.11.2007 21:42
Hi! Ich habe den Webserver fliegend aufgebaut und nachdem mein Router richtig konfiguriert war, klappte alles auf Anhieb! Super, jetzt kann ich mich ans probieren machen... Gruss, Micha
Datum: 05.11.2007 21:57
Ich glaube fast jeder der darauf zugreift schaltet mal ein bisschen. (Ich auch)
Datum: 05.11.2007 22:10
So solls sein :) Funktioniert super! Bin gespannt, was von Uli noch an Funktionen kommt!
Datum: 05.11.2007 22:15
So, nehme ihn jetzt vom Netz. Morgen wird ein zweites Netzwerkkabel gelegt und dann kann man wieder testen. N8, Micha
Datum: 06.11.2007 09:34
Er läuft ;) Nach vielen Stunden in denen ich nach Verbindungsunterbrechungen gesucht habe ist es geschafft, mein Board läuft mit Ulrichs Software einwandfrei ;) Ihr könnt hier allerdings nur eine LED schalten, URL http://heldt-intern.dyndns.org:81
Datum: 06.11.2007 10:42
So jetzt habe ich die tuxgraphics.org Software drauf und man sieht die Daten des SHT11 Sensors ;)
Datum: 06.11.2007 10:55
Hallo, ich hatte das Projekt von Nik Bamert ja schonma aufgebaut, so brauchte ich nur die Software auszutauschen. So schnell wurde aus Device mit UDP Support ein Webserver :-) Ich hab ein Kleinigkeit festgestellt, kommt jemand auf den Webserver wenn die Subnetzmaske nicht 255.255.255.0 sondern 255.255.0.0 ist ? Ansonsten sehr nette implementation. Gruß Lars
Datum: 06.11.2007 13:00
So jetzt habe ich mal die Temperaturanzeige und eine Möglichkeit hier die LED ein/auszuschalten auf einer Seite. Neue URL: http://heldt-intern.dyndns.org:81/secret
Datum: 06.11.2007 13:05
Lars Kessner wrote: > Ich hab ein Kleinigkeit festgestellt, kommt jemand auf den Webserver > wenn die Subnetzmaske nicht 255.255.255.0 sondern 255.255.0.0 ist ? > Ansonsten sehr nette implementation. Das hängt von der IP/Subnetzkombination deines PCs ab. Ich empfehle eine Netzwerklektüre.
Datum: 06.11.2007 13:29
@Thomas Heldt: Blink :-) Ich bin erstaunt, dass die Seite so schnell geladen wird. Wie schnell ist deine Internetverbindung? Kannst du vielleicht mal ein Bild draufmachen? Das würde mich mal interessieren. Hach ich freu mich schon auf meinen ENC28J60, der hoffentlich bald kommt...
Datum: 06.11.2007 13:39
@Randy N. Ich habe hier leider nur DSL2000, ich habe gerade die tuxgraphis.org Software drauf um den SHT11 zu nutzen, ich muss mal schauen wie ich da ein Bild einbinden kann, ich lerne gerade erst C und brauche deshalb noch etwas um da durch zu steigen teilweise ;)
Datum: 06.11.2007 13:43
Ja, ich finde auch, dass es eine sehr schnelle Reaktion ist. Hast du spezielle Optimierungen auf Geschwindigkeit vorgenommen? Mega läuft mit 16MHz?? Wie viele Prozente nimmt eigentlich der Text für die Website für sich in Anspruch?
Datum: 06.11.2007 13:57
@Gast Ich betreibe alles mit dem Takt vom ENC28J60, bei mir 12,5MHz, also wäre da sogar noch etwas Luft nach oben. Ich arbeite hier bei mir aber mit sehr guten Switches, aber dafür hängt der "Kleine" jetzt hinter ca. 50m Kabel und 2 Switches. Die Seite hat nur wenig Text, allerdings werden ja die Daten des SHT11 noch on time eingefügt. @Alle Wer hat schon einmal ein Bild in die Software von tuxgraphics.org eingefügt, ich finde da keinen Anfang :(
Datum: 06.11.2007 14:00
Folgt denn eigentlich noch eine SD Karten Anbindung im FAT16 Format??? Das wäre dann mal ein interessanter Fortschritt...
Datum: 06.11.2007 15:51
Hi! Ich denke dass 1wire, SD-Card etc. noch kommen wird. Bedenkt bitte, dass Uli das in seiner Freizeit macht und wir alle wissen, dass man eigentlich immer zuwenig Freizeit hat :D Danke an Uli und weiter so! Gruss, Micha
Datum: 06.11.2007 16:33
Hallo, Jaja so ist es ich mache was ich kann!! Mit der Version 1.0.3 können nun Variablen und Balken eingebunden werden. Wer den Code durchblickt zum einfügen von Variablen kann ja mal eine kurze Doku schreiben. Ich arbeite noch am Webserver!! Gruß Ulrich
Datum: 06.11.2007 18:53
Angehängte Dateien:Hier mal Ulrichs Webserver 1.0.3 mit FAT12/16/32 und MMC/SD. Statt raket.gif wird image1.jpg von MMC/SD geladen wenn eine Karte erkannt wird. Ist noch starr reinprogrammiert. Achtung: Ich hab da massiv an httpd.c, stack.c, main.c und enc28j60.c/.h rumgebastelt ! Also bitte nicht Ulrich fragen wenn was schief geht ;) Was ist bei mir anders ? Mein Board benutzt INT0 statt INT2. Und der Reset Pin vom ENC28J60 wird auch vom uC gesteuert. CS der MMC/SD wird vom SS Pin angesteuert. Das mit dem Resetpin in enc28j60.c klappt leider nicht immer (nach ISP prommen). Da ist noch was faul. RESET im Terminal eingeben reicht dann oft. Sonst ausschalten und wieder einschalten. Ob das alles so richtig ist ? Bis jetzt geht es.
Datum: 06.11.2007 19:40
So mit der aktuellen Version von Ulrich habe ich mal etwas gespielt und eigene Variablen eingebunden ;) URL: http://heldt-intern.dyndns.org:81 @Ulrich Wie kann ich die Daten für ein Bild selber erzeugen?
Datum: 06.11.2007 20:13
Hallo Thomas, schau dir mal WinBin vom Ulrich an. Findest du unter Projekte. Sollte das sein, was du suchst. Gruß Gerd
Datum: 06.11.2007 20:27
Hallo, In der Version 1.0.4 kann über den Befehl SV auf die Variablen zugegriffen werden. Gruß Ulrich
Datum: 06.11.2007 20:58
@Gerd G. Danke, genau das habe ich gesucht, klappt super ;) @Ulrich Interessant wäre jetzt die Uhrzeit von einem NTP-Server zu holen und auf der Webseite an zu zeigen. Am besten über den Timer der den Uhrenquarz nutzt.
Datum: 06.11.2007 21:05
Hallo, Bei NTP bin ich auch am überlegen! Ob nun Client oder Server mit DCF77. Was sagt ihr? Gruß Ulrich
Datum: 06.11.2007 21:08
@Ulrich Also Client fände ich besser so braucht man keine weitere Hardware ;) Für das lokale Netzwerk könnte dann ja der AVR Server als NTP-Server arbeiten.
Datum: 06.11.2007 21:12
Hey Holger! Was erreichst du insgesamt für eine Übertragungsgeschwindigkeit mit deiner SD Kartenanbindung? Gruß Dirk
Datum: 06.11.2007 21:22
Hallo, Zum Thema AVR Webserver und Geschwindigkeit habe ich eine gute Studienarbeit gefunden (Seite 63 - 64). http://www.uni-koblenz.de/~physik/informatik/studi... Gruß Ulrich
Datum: 06.11.2007 21:54
>Was erreichst du insgesamt für eine Übertragungsgeschwindigkeit mit >deiner SD Kartenanbindung? Das hängt extrem von der Karte ab. Inklusive FAT Dateisystem geht das bei mir so von 27kB/s bis 400kB/s bei 8MHz SPI Speed. Mittelwerte versteht sich. Ohne die Daten wirklich zu verarbeiten. Also RAW Read/Write ohne Webserver. Der Webserver bremst das natürlich gewaltig aus. Ein 67kB JPG Bild braucht so ca. 18 Sekunden. Unter Windows 98/XP. Linux ist doppelt so schnell ;)
Datum: 06.11.2007 22:01
Das ist der Grund warum ich mir eine Dataflash von Atmel auf mein Webserver-Board gemacht habe. Da merkt mein den Unterschied. Ein Bild ist schnell geladen. Eigentlich merkt man keinen unterschied zum "richtigen" Server. Die sind auch nicht teuer und für eine Webseite werden meistens nicht >2 MB benötigt. Ich habe jetzt einen 4 Mbit Flash und komme damit mehr als aus.
Datum: 06.11.2007 22:18
Hallo Ulrich! Ich hab gesehen das du über Telnet einen virtuellen Comport eingebunden hast. Warum muss PC-seitig ein virtueller Com-Port erzeugt werden und dieser mit dem TCP-verlinkten verknüpft werden? Ist das nicht irgendwie doppelt gemoppelt, oder wie hab ich das zu verstehen? MfG Tom
Datum: 06.11.2007 22:24
Hallo, Natürlich ist das doppelt gemoppelt, kannst ja einen besseren Treiber schreiben ich nehme diesen gerne. Problem ist halt einen Treiber zu finden der unter der GPL steht. Gruß Ulrich
Datum: 06.11.2007 22:34
@Ulrich Wie kann man es machen das man die Webseite des Server über eine längere URL, z.B. http://10.0.0.10/password/ statt http://10.0.0.10/ erreichen kann? Irgendwie sollte man einen kleinen Schutz einbauen können damit später nicht jeder Ports umschalten kann ;) Es wäre auch gut den Zustand der Ports im EEPROM zu speichern, nach einem Reset wäre dann der Zustand wieder herstellbar der vor dem Reset da war.
Datum: 06.11.2007 22:37
http-auth implementieren wie beim avr-eth1 projekt?!?
Datum: 06.11.2007 23:17
@Mr pcexperte! Bitte nicht nur auf den Wissen anderer aufbauen. Es ist super, dass Du hier was dazu lernen willst; aber die Art und Weise ist etwas daneben! Bitte, zerfetzt mich jetzt für diesen Beitrag! Ich warte.
Datum: 06.11.2007 23:48
@Thomas P. Soll heißen, im Internet gibt es sooo viele Quellen, wie man eine Webseite schützen kann - erstmal dort suchen und selber versuchen, es hinzubekommen. Beispielsweise hier: http://de.wikipedia.org/wiki/Hypertext_Transfer_Pr... Aber jaja ich kenn das - irgendwie ist es einfacher was ins Forum zu schreiben, als selbst nachzudenken. Hab ich auch schon paarmal gemacht und...danke dass ihr mir trotzdem geholfen habt :-D :-D :-D
Datum: 06.11.2007 23:49
@Thomas P. Jeder lernt durch das Wissen anderer, das fängt schon in der Schule an! ;) Es geht hier nicht darum Insellösungen zu basteln, sondern nachher eine Lösung aus einem "Guss" zu haben. Ich schick viele meiner Ideen auch an Ulrich etc. und ich lerne durch lesen, beobachten und probieren!
Datum: 07.11.2007 05:00
Hallo! Ich sag gleich das ich von Programmierung kein großen Plan habe, aber mich interessiert eine Sache. Und zwar nachbau einer IP Camera/Videoserver... Es soll so aussehen: (CCD Modul 420Linien = Analog)>(A/D Wandler=?)>(Mikrocontroller=?)>(Ethernet Interface=ENC28J60) Dieses teil sollte über eine IP ansprechbar sein?! Ähnlich wie das hier: http://avr.auctionant.de/avr-ip-webcam/avr-webserv...
Datum: 07.11.2007 05:02
Oder auch statt CCD Modul ein 2-5Mpix CMOS Kamera module???!!!
Datum: 07.11.2007 07:47
Hallo, Http_auth werde ich heute noch einbinden. Gruß Ulrich
Datum: 07.11.2007 09:16
Moin! Zum spielen: http://mikrocontroller.homedns.org (Version 1.04 mit kleinen Änderungen, zB Zustandsanzeige der 3 Lampen und Befehl ? zur Ausgabe der eingebauten Befehle) Gruss, Micha
Datum: 07.11.2007 11:34
@Michael Ich probiere gerade mir auch die vorhandenen Befehle auflisten zu lassen, aber ich bekomme nur leere Zeilen :( Was mache ich falsch? Hier der Code:
unsigned char cmd_index = 0; // Befehlsindex while (CMD_TABLE[cmd_index].cmd) { usart_write("%s\r\n", CMD_TABLE[cmd_index].cmd); cmd_index++; } |
Gruß Thomas
Datum: 07.11.2007 11:38
Hi! ich habe es so gemacht:
void command_help (void) { unsigned char index = 0; for (index = 0;index<8;index++) { usart_write_str(CMD_TABLE[index].cmd); usart_write(" - "); usart_write_str(CMD_TABLE[index].help); usart_write("\r\n"); } } |
Ich habe die Kommando-Tabelle auch noch mit einem Hilfetext versehen. Mein 4-zeiliges LCD lässt sich fernsteuern :) http://mikrocontroller.homedns.org inkl. Webcam zur Kontrolle (allerdings nicht über den Controller) Gruss, Micha
Datum: 07.11.2007 11:42
@ Thomas
>Was mache ich falsch?
usart_write() ist eigentlich ein usart_write_P().
Das heisst es schreibt nur Strings aus dem Flash.
Für Strings aus dem RAM musst du wie Michael
usart_write_str() nehmen.
Datum: 07.11.2007 11:47
Danke, da suche ich schon seit Stunden im Tutorial etc. und finde nichts was hilft und jetzt klappt es ;)
Datum: 07.11.2007 11:49
ich such mir auch die Finger wund, steige gerade erst ein in C. Sonst nur ASM :)
Datum: 07.11.2007 13:03
Ich hab den Webserver mal aufm Steckbrett getestet. Sieht echt gut aus. Was mir aufgefallen ist: Die drei Ausgangsports toggeln wenn man im Browser auf aktualisieren drückt. Es scheint als würde das passieren, wenn man mal einen Haken gesetzt hatte. Kann man das irgentwie machen, dass die Haken gesetzt bleiben, wenn der Port an ist? Oder ist da noch ein Bug?
Datum: 07.11.2007 15:22
Hi! Die Led´s toggeln, da der letzt Schaltbefehl in der URL noch enthalten ist. Bei aktualisieren wird er erneut verarbeitet. Gruss, Micha
Datum: 07.11.2007 15:43
Mir fällt gerade auf, dass bei den Servern die online sind, dass Impressum fehlt :-) Zum Glück sollten sich hierher nur Techniker/Ings/u.ä. verirren. Anwälte verstehen hier wahrscheinlich (hoffentlich) nur Bahnhof. Aber ansonsten ist das eine super Ding. Einfach, preiswert und viel zu sehen.
Datum: 07.11.2007 16:00
>inkl. Webcam zur Kontrolle (allerdings nicht über den Controller) > >Gruss, >Micha Hallo, hatte ich zuerst überlesen und mich dann gewundert, dass die Bilder so schnell laden. Aber eine schöne Idee mit der Cam und dem LCD. Ich suche gerade einen Schaltregler für die 3,3V in SMD um den LM317 zu ersetzen. Ich habe noch ein paar ENCs in SMD und überlege eine SMD-Version zu machen. Viel kleiner soll es eigentlich nicht werden. Mal sehen. Zur Zeit streite ich immer noch mit den DS18S20. Sie bremsen einfach meine Anwendung aus. Oder ich lass es einen Tiny machen und verwende den als Slave. Gruß Gerd
Datum: 07.11.2007 16:00
@Gast Du solltest dich mal informieren, vielleicht bei einem Fachanwalt, wann eine Impressumspflicht besteht! Man stelle sich vor jedes Gerät welches man über das Web administrieren kann bräuchte ein Impressum (Router, Sensoren etc. ) ;)
Datum: 07.11.2007 16:05
@Gerd G. Nimm doch einen SHT11 von Sensirion (evtl. als Sample) und du hast auch die Luftfeuchtigkeit, Code dafür habe ich schon eingebunden und läuft stabil.
Datum: 07.11.2007 17:09
Angehängte Dateien:Hallo, Hier die Webseite mit HTTP AUTH ich bin aber noch an dem Klartextstring dran, ich hoffe aber das ich heute noch fertig werde. Könnt ja mal testen. USER = admin PASSWORT = uli Gruß Ulrich
Datum: 07.11.2007 17:11
Hallo, ich bin kein auch Fachanwalt, und wollte das eigentlich nur ein wenig witzig meinen - mir ist klar, dass hier keiner ein Impressum implementiert/implementieren muss. Soweit ich weiß, ist das bei rein privaten Seiten (was hier wohl unterstellt werden kann) wirklich nicht notwendig. Die kleinen Server sind ja auch über eine veränderliche Adresse ansprechbar, von dauerhafter Anwendung (so wird es wohl gefordert für die Impressumspflicht) kann also auch keine Rede sein. Wäre aber witzig, falls es doch jemand implementiert, natürlich mit einem breiten ":-)" an unsere Justiz. Gast.
Datum: 07.11.2007 17:53
Thomas Heldt wrote: > @Gerd G. > > Nimm doch einen SHT11 von Sensirion (evtl. als Sample) und du hast auch > die Luftfeuchtigkeit, Code dafür habe ich schon eingebunden und läuft > stabil. Ist schon richtig. Das Teil ist nicht schlecht. Leider habe ich noch keinen. Die Dallas verwende ich, weil ich vier Meßstellen habe und nur die Temparatur brauche. Aber eine Wetterstation mit Innen- und Außenmeßwerten wird auf meiner Liste sein. Funkübertragung natürlich über RFM12, die bieten sich zur Zeit an. Die Werte sollen auf einer Website dargestellt werden und alle halbe Stunde auf SD-Karte gespeichert werden. Wäre natürlich toll, wenn ich die Werte dann als Diagramm anzeigen könnte (Tageswerte).
Datum: 07.11.2007 18:14
@Uli Hatte heute den ganzen Tag den Webserver laufen, mit 8 LED´s und Display - wassn Spass die Leute da hatten :) Zur Überwachung gabs ne externe Webcam. So konnte man sehn, was man geschaltet hat ... http://mikrocontroller.homedns.org weiter so... Gruss, Micha
Datum: 07.11.2007 18:16
@Ulrich Funktioniert super, vielleicht kannst Du die base64.c und base64.h von dieser Seite http://www.episec.com/people/edelkind/c.html oder dieser Seite http://www.adp-gmbh.ch/cpp/common/base64.html gebrauchen um den base64 kodierten String aus Name/Passwort in der http.c zu erzeugen. Dann könnte man in der config.h die beiden Werte im Klartext ablegen. Gruß Thomas
Datum: 07.11.2007 19:09
Hallo Michael funktionieren bei deinem Display keine Sonderzeichen, wie "!!!??" ? Gruß Gerd
Datum: 07.11.2007 19:30
Hallo, alle Sonderzeichen werden vom Browser codiert in %nnn dieses müsste der AVR-Server erst wieder zurückwandeln damit die entsprechenden Zeichen rauskommen. Kannst dir ja mal die Adresszeile anschauen, was da rauskommt beim senden. @Michael: Die Seite wird bei mir jetzt nicht mehr richtig geladen, hats da was zerbröselt, oder wird grad optimiert ?! mfG
Datum: 07.11.2007 19:43
Hi! Bei mir spielt alles !? Immer noch Probleme? @Gerd: genau, ich habe mir noch nicht die Mühe gemacht, die Sonderzeichen zu decodieren ;) Gruss, Micha
Datum: 07.11.2007 19:46
Also bei mir geht die Webcam nicht :(
Datum: 07.11.2007 19:53
@Michael einmal hats geklappt, doch dann kommt nur wieder die Hälfte, und wird mit dem Laden nicht fertig ! so schauts jetzt aus: http://roboter.net-con.net/mc/AVR_Webserver_Fehler.jpg egal ob IE oder FF !
Datum: 07.11.2007 19:53
schade :( Könnte am Browser oder den Script-Einstellungen liegen!? Zur Entschädigung gibts hier im Minutentakt ein Bild: http://www.vw-bus-t4.de/webcam.jpg Gruss, Micha
Datum: 07.11.2007 19:56
@tiny80 Ist mir bisher nicht aufgefallen. Vielleicht zuviele Zugriffe im Moment? Ist ja einiges los :) Gruss, Micha
Datum: 07.11.2007 20:18
@Michael ich gehe per Proxy ins Inet, kann den aber auch deaktivieren, zum Test, dann gehts. Heute Nachmittag, vom Büro aus, hats auch geklappt, da gehts nur per Proxy ins Inet. Evtl. kannst Du mal probeweise diese Zeile in den Header der Seite einbauen :
<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
dann sollte die Seite nicht in 'nem Cache landen. Mir würde nur der richtige Quarz für den ENC abgehen, dann könnte ich auch so einen Server zusammenbauen.
Datum: 07.11.2007 20:33
Angehängte Dateien:So sieht es bei mir jetzt aus
Datum: 07.11.2007 21:26
Hallo, Version 1.0.5 gibts nun auf meiner Homepage. Passwort und Benutzer für HTTP können in der config.h eingerichtet werden. Gruß Ulrich
Datum: 07.11.2007 22:08
@Ulrich Funktioniert super, danke ;) @Alle Mein Testserver ist weiterhin unter http://heldt-intern.dyndns.org:81/ zu erreichen, Zugangsdaten sind admin + demo . Angezeigt werden die Temperatur und Luftfeuchte im Webservergehäuse ;)
Datum: 07.11.2007 22:16
Guten Abend, die aktuelle Version mit "strcasestr" in httpd.c läuft nur mit der aktuellsten Version von WINAVR??
Datum: 07.11.2007 22:18
@Steffen Ulrich gibt auf seiner Homepage die Version vom 25.05.2007 als geeignet an, diese dürfte die aktuellste sein und die nutze ich auch. Mit dieser Version funktioniert es auf jeden Fall. Gruß Thomas
Datum: 07.11.2007 22:46
Ich weiß nicht warum aber im Firefox 2.0.06.6 unter Suse Linux 10.3 geht die Authentifizierung nicht unter anderen Browsern schon. Weiß nicht warum... wollte es nur mitteilen!
Datum: 07.11.2007 23:07
Wie siehts denn mit Servo ansteuerungne aus, um eine Webcam zu lenken?
Datum: 07.11.2007 23:09
@jonny g. Welcher prozessor M32 oder M644, wenn du einen M32 hast erhöhe mal MTU Size auf 650 in Stack.h Zeile 48 Gruß Ulrich
Datum: 07.11.2007 23:14
@ Jonas G. und Ulrich Beim m644 musste ich die MTU Size auf 1500 setzen damit es mit SuSE 10.3 und dem aktuellen Firefox funktioniert, aber wenn man es auf 1500 erhöht geht es perfekt.
Datum: 07.11.2007 23:36
@Ulrich Was wurde denn in der V1.06 geändert, bzw. welche Dateien wurden geändert?
Datum: 07.11.2007 23:45
Hallo, Da war ein Fehler im Stack mit der RTL8019 Karte! Gruß Ulrich
Datum: 07.11.2007 23:51
Hallo, ich hatte bisher alles mit einem älteren WinAVR gemacht. Bis v4 ging es auch. Jetzt hab ich halt die neue WinAVR drauf :-) Ich habe nun schon ne Weile auf den Code geschaut, mir ist aber noch nicht ganz klar, wie die httpd.c genau funktioniert. Es gibt ja die zwei großen if-Abfragen: Einmal mit tcp_entry[...].app_status == 1 und einmal mit .app_status > 1 und < 0xfffe. In der oberen (app_status==1) wird ja (nach der authentifizierung) entweder eines der bilder gesendet, die Ausgänge gesetzt oder die index-Seite gesendet. In der unteren if-Abfrage (app_status > 1) ist dann allerdings noch eine schleife von 0 bis 290. In dieser werden auch die Variablen gesetzt. Mir ist jetzt der Zusammenhang nohc nicht ganz klar. Wo werden die Variablen beim ersten Senden der "page1" gesetzt? Die Kommentare haben mir leider noch nicht ganz geholfen. Danke und Gruß Steffen.
Datum: 08.11.2007 00:09
@Steffen So wie ich das verstehe wird in der ersten Schleife auf eine GET Anforderung reagiert, also entweder Anforderung der Authentifizierung, Anforderung eines Bildes oder der Seite selber. In der zweiten Schleife werden dann die Daten gesendet, jeweils in Paketen a 290 Byte. @Ulrich Hab ich das korrekt verstanden? Gruß Thomas
Datum: 08.11.2007 07:40
Simon K. wrote: > Lars Kessner wrote: >> Ich hab ein Kleinigkeit festgestellt, kommt jemand auf den Webserver >> wenn die Subnetzmaske nicht 255.255.255.0 sondern 255.255.0.0 ist ? >> Ansonsten sehr nette implementation. > > Das hängt von der IP/Subnetzkombination deines PCs ab. Ich empfehle eine > Netzwerklektüre. Hallo Simon, ich glaube nicht das ich eine Netzwerklektüre benötige, dass ist mein tägliches Geschäft und ich habe halt ein Netzwerk laufen was nicht 255.255.255.0 als Subnetzmaske besitzt. Und das Netzwerk funktioniert. Gruß Lars
Datum: 08.11.2007 08:35
>ich glaube nicht das ich eine Netzwerklektüre benötige Deine Frage lässt aber das Gegenteil vermuten....... Hier mal was als Einstieg http://netzmafia.de/skripten/netze/netz8.html
Datum: 08.11.2007 09:36
Hallo Thomas, ja, nachdem ich dann mit meinem Notebook abends im Bett den Quelltext noch mal durchgeschaut habe (man wie krank hört sich das jetzt an ;-) denke ich genauso wie du. In der ersten Abfrage wird für die Indexseite bspw. nur der Header gesendet und der Zeiger auf die zu sendenden Werte gesetzt. Erst wenn dann die Bestätigung vom Client kommt, wird dann die ganze Seite gesendet. Eine Frage noch: Warum wird die Schleife 290 mal durchlaufen? Ist das ein maximaler Wert für irgendetwas, oder korrespondiert der mit der Anzahl der Zeichen in der Indexseite? oder... oder... oder...??? Könnte der Wert auch über ein strlen o.ä. aus Page1 ermittelt werden? Gruß Steffen.
Datum: 08.11.2007 09:46
@Steffen Warum es genau diese 290 Zeichen sind kann ich auch nicht sagen, bin ich noch nicht hinter gestiegen da müsste Ulrich was zu sagen. @Ulrich Ich habe ein komisches Verhalten bzgl. Browser und Authentifizierung festgestellt: MTU-Wert: 1100-1500 versucht Zugriff per IP-Adresse im Browser oder per Domainnamen (Dyndns) Klappt mit Firefox unter Linux SuSE 10.3, mit dem IE 6 unter Win2000 aber nicht korrekt mit dem Firefox unter Win2000. Zugriff per Domainnamen über Dyndns klappt immer mit allen Browsern. Beim Zugriff über die IP-Adresse kann man sich beim ersten mal anmelden und auch einen Schaltvorgang durchführen (Firefox) wenn man dann noch mal direkt schalten will kommt wieder die Authentifizierung und nichts geht mehr. Refreshed man die Seite aber nach dem ersten Schaltvorgang (Also Datenübergabe in der Url) und schaltet dann wieder geht es auch. Dieses Verhalten tritt bei mir mit verschiedenen MTU-Werten auf und immer mit dem Firefox. Steckt da eine Logik hinter?
Datum: 08.11.2007 11:03
Angehängte Dateien:Hallo, nochmal eine Frage zum Verständnis des Codes: Ich habe im Anhang eine einfache, schnell erzeugte Grafik zum Programmfluss: Habe ich das richtig verstanden, dass, nachdem der eine neue Anfrage gestartet wurde (z.B. Aufruf der Seite oder Anfrage des Clients nach einem Bild) eine neue TCP-Session aufgemacht wird mit tcp_entry[index].app_status==1 (sonst =0)? Wenn diese Nachricht empfangen wurde, wird noch kontrolliert, ob es eine Anfrage nach einem Bild oder der Html-Seite war. Je nachdem, ob die Anfrage ein Bild oder Html war, wird der entsprechende Header sofort! gesendet und der Pointer für die nächsten Daten auf die entsprechende Quelle gelegt (die Html-Seite ist Page1 und die Bilder Page2 bzw. Page3). Das Unterprogramm wird dann beendet. Beim Senden des Headers wird der Statuszähler um eins erhöht (in der Routine tcp_socket_process in der Datei stack.c). Wenn der Client nun die Bestätigung für den Empfang des Headers sendet, wird erneut der Httpd aufgerufen. Nun ist der app_status aber höher (min. 2) und es wird in die zweite if-Abfrage gesprungen. In dieser wird nun auf Basis des gesetzten Pointers die entsprechende Page gesendet. Egal welche Page ausgewählt wird, wird der Inhalt nach den Variablen durchsucht und durch entsprechende Werte ersetzt. Diese werden nun gesendet. Kann es vorkommen, dass die Variablenzeichenkette (VA@xx) auch in Bildern vorhanden ist und dann durch Werte erstetzt wird??? wenn keine Daten mehr vorhanden sind, wird die Session beendet. Bitte um Bestätigung ;-) (oder Korrektur) Gruß Steffen.
Datum: 08.11.2007 11:25
@Steffen Meinem Verständnis nach ist es genauso wie du es beschrieben hast, ob die Variablenplatzhalter so in Bilddaten vorkommen kann ich aber nicht sagen, theoretisch dürfte es aber möglich sein was dann wohl zu "Pixelfehlern" führen würde. Aber ich glaube das es passiert ist sehr unwahrscheinlich. Man könnte je nach Headerart die Variablen evtl. nur bei nicht Bilddaten ersetzen lassen, mal sehen was Ulrich sagt.
Datum: 08.11.2007 12:46
Der wirkliche Netzwerker wrote: >>ich glaube nicht das ich eine Netzwerklektüre benötige > > Deine Frage lässt aber das Gegenteil vermuten....... > > Hier mal was als Einstieg > > http://netzmafia.de/skripten/netze/netz8.html Hallo, mal andersrum gefragt, hast du den Webserver mal aufgebaut und die Software eingespielt ?
Datum: 08.11.2007 13:07
Hallo, Der Wert 290 ist relativ klein gewählt. Um eine hohe Packetanzahl zu erzeugen (TESTZWECKE). Normalerweise müsste die Zahl (MTU_SIZE - TCP_DATA_START) sein. Dann würde ein Frame voll ausgenutzt. Allerdings sollte man berücksichtigen das noch Variablen eingefügt werden können, also MTU_SIZE - TCP_DATA_START - 100. Gruß Ulrich
Datum: 08.11.2007 15:18
Hallo, Das Problem mit Firefox und Linux Suse10.3 könnte nun beseitigt sein :-). Ursachenforschung: Das Headerpacket get / vom Client wurde in mehrere Packete aufgeteilt. Firefox hat einen großen Header über 1500Bytes. Problem die Software wird immer komplexer :-) Download der Version 1.0.7 auf meiner HP. Gruß Ulrich
Datum: 08.11.2007 15:54
Hallo Zur Info. Ich benutze die letzte Version von Ulrich Radig (Danke für den Sourcecode) newStack_1_0_4 und habe bis auf den RJ45 Stecker die gleichen Komponenten. Also ENC28J60 und einen Atmega32. Habe ein Problem mit der MAC Adresse. Wenn ich diese in den ENC schreibe gibt es keinen Fehler. Schaue ich die Einträge im Register an mit usart_write("MAC 0: 0x%1x\r\n", enc28j60Read(MAADR1)); usart_write("MAC 1: 0x%1x\r\n", enc28j60Read(MAADR2)); usart_write("MAC 2: 0x%1x\r\n", enc28j60Read(MAADR3)); usart_write("MAC 3: 0x%1x\r\n", enc28j60Read(MAADR4)); usart_write("MAC 4: 0x%1x\r\n", enc28j60Read(MAADR5)); usart_write("MAC 5: 0x%1x\r\n", enc28j60Read(MAADR6)); ergibt dies als Ausgabe: MAC 0: 0x0 MAC 1: 0x0 MAC 2: 0x0 MAC 3: 0x0 MAC 4: 0x5f MAC 5: 0x0 Dass heisst: Nur der letzte Eintrag wurde im Speicher abgelegt und zwar an der ersten Stelle. Alle anderen Einträge sind 0x00. Es sieht so aus, als würde sich die Adresse nicht ändern und dauernd der neue Eintrag den vorhergehenden löscht. Mache ich einen Überlegungsfehler, stimmt etwas im Quellcode nicht oder könnte es sein, dass mein ENC den Geist aufgegeben hat(Wahrscheinlich nicht, da ich den letzten Wert auslesen kann). Ein anderes Problem ist mit der ARP Tabelle. Diese ist immer 0. Die sollte doch automatisch gefüllt werden oder liege ich da falsch??? Vielen Dank für die Hilfe Gruss
Datum: 08.11.2007 16:01
Angehängte Dateien:Hallo, Jetzt klappt es auch mit Opera und MDA II. Evt. schließe ich das an mein Garagentor an ;-) Gruß Ulrich
Datum: 08.11.2007 17:17
@Ulrich Entweder habe ich nicht alle Änderungen aus der 1.07 in die 1.06 übernommen oder es tritt ein neues Problem mit dem Firefox auf: Wenn ich per IP-Adresse zugreife lädt der Browser unter Win2000 endlos obwohl die Seite komplett ist. Mit IE und wenn ich auf den Dyndns Domainnamen zugreife funktioniert es. Unter Linux ist die Seite total kaputt :( Kann da mit den Variablen zu tun haben, ich nutze andere als du, z.B. %LED1 und ersetze diese mit folgendem Code:
if (strncasecmp_P("%LED1",http_entry[index].new_page_pointer,5)==0)
{
if((PORTB & (1<<PB1))!=0)
{
memmove(ð_buffer[TCP_DATA_START+a],"<b><font color=\"#FF0000\">AUS</font></b>",39);
a = a + 38;
http_entry[index].new_page_pointer=http_entry[index].new_page_pointer+5;
}
else
{
memmove(ð_buffer[TCP_DATA_START+a],"<b><font color=\"#00C000\">AN</font></b>",38);
a = a + 37;
http_entry[index].new_page_pointer=http_entry[index].new_page_pointer+5;
}
}
|
Datum: 08.11.2007 17:31
@Ulrich Alles klar habe es gelöst ;) ARP Cache geleert und MTU-Wert angepasst. Jetzt klappt es mit allen Browsern unter Linux und Windows. Noch eine Frage, ich habe FTP soweit das ich mich mit WS-FTP am Server anmelden kann, alle Anfragen vom Client werden beantwortet. Aber jetzt will der Client ja einen Port <>21 haben für die Datenkommunikation, wie kann ich jetzt einen neuen Port für die aktuelle Sitzung öffnen und z.B. ein Dummy Directory Listing an den FTP-Client senden? Im RFC ist die Antwort auf LIST nicht deklariert und wie ich das mit den beiden Ports mache verstehe ich leider noch nicht. Ich war schon froh das ich es hinbekommen habe das der Server auf die FTP Anfragen antwortet und die Verbindung auf- und abbauen kann.
Datum: 08.11.2007 17:56
@Ulrich Bei der 1.07 (Original von dir) und auch bei meiner geänderten geht HTTP-AUTH nicht mehr, in der config.h ist eine 1 eingetragen aber die Seite kann ohne Abfrage aufgerufen werden :(
Datum: 08.11.2007 18:30
Hallo, Lese dir mal die neue Config duch, und du wirst feststellen eine 1 schaltet Auth ab. Welche Werte wurden geändert? Gruß Ulrich
Datum: 08.11.2007 18:58
@Ulrich Alles klar hatte meine alte config.h genommen :( Jetzt teste ich verschiedene MTU Werte etc. weil es je nach länge der URL mal funktioniert und mal nicht. Aber ich bekomme das schon hin nur mit dem FTP stehe ich auf dem Schlauch.
Datum: 08.11.2007 19:20
@ Thomas Heldt suche mal nach "passive ftp". Ist einfacher zu verstehen.
Datum: 08.11.2007 20:37
@Werner B. Danke, habe ich schon gelesen, werden aber auch zwei Ports genutzt. Aber ich muß hier erstmal die aktuelle Version stabil zum laufen bekommen bevor ich weiter um FTP kümmern kann. @Ulrich Kann es sein das die V1.07 extrem abhängig von der URL, Länge der Webseite etc. ist. Mal lädt die Seite mit einem MTU-Wert, dann wertet sie aber die Parameter der GET Anweisung nicht korrekt aus, dann wieder klappt alles mit der Auswertung dafür lädt die Seite im Browser endlos. Egal ob mit deiner Originalversion als auch mit meiner bisher eigentlich stabilen Version. Hast Du da noch einen Tipp?
Datum: 08.11.2007 21:07
Hallo, Die 1.0.8 jetzt nicht mehr :-) (hoffe ich) Gruß Ulrich
Datum: 08.11.2007 21:40
@Ulrich Läuft wie geölt auf Win2000 mit IE6 und Firefox und auf SuSE 10.3 mit Firefox auch ;) Kannst Du mir vielleicht noch einen Tipp geben wie ich aus meiner ftpd.c heraus einen zweiten Port (z.B. 999) gebunden an die gleiche MAC/IP öffnen kann als Datenport für FTP? Müsste das dann eine eigene Anwendung mit eigenem Port darstellen, glaube doch schon das ich beim Start den Port als Anwenung eintragen und nach der Verbindung wieder aus der Anwendungsliste löschen muss, korrekt gedacht?
Datum: 08.11.2007 22:44
@ Ulrich
Mach aus den
const char http_header1[]={"HTTP/1.0 .....
doch mal ein
PROGMEM char http_header1[]={"HTTP/1.0 .....
Dann ersetzt du
memmove(start_data,http_header...
durch
memcpy_P(start_data,http_header....
Schon hat man fast 300 Byte RAM mehr zur Verfügung.
Und schmeiß Page2 aus httpd.c raus in eine Headerdatei.
Ist ja lästig da dauernd über ein 1000 Zeilen Hex Listing
scrollen zu müssen wenn man mal zwei Zeilen ändern möchte.
Datum: 09.11.2007 09:51
Angehängte Dateien:Hallo, Hier die neuste Version! Gruß Ulrich
Datum: 09.11.2007 11:13
Angehängte Dateien:Hallo, So die letzte Version für heute! Mit richtiger Html Header End Auswertung! Guss Ulrich
Datum: 09.11.2007 13:01
>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
#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.
Datum: 09.11.2007 13:30
Hallo @Steffen: Du hast bestimmt eine alte Version der config.h in der aktuellen steht: #define HTTP_AUTH_DEFAULT 0 MfG Hias
Datum: 09.11.2007 13:39
@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?
Datum: 09.11.2007 14:07
@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 :(
Datum: 09.11.2007 15:18
Hier zum spielen!! http://ulrichradig.dyndns.org User: admin Passwort: uli1 Gruß Ulrich
Datum: 09.11.2007 15:31
@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 ;)
Datum: 09.11.2007 15:57
@ 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 !
Datum: 09.11.2007 16:35
Hallo, Alsogut doch noch eine neue Version habe V1.0.12 Online gestellt. Debugmeldungen habe ich erstmal aktiviert! Gruß Ulrich
Datum: 09.11.2007 18:31
>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.
Datum: 09.11.2007 19:02
Hallo, So jetzt sollte alles klappen Version 1_0_13!!!! http://ulrichradig.dyndns.org User: admin Passwort: uli1 und immer schön testen :-)
Datum: 09.11.2007 20:47
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
Datum: 09.11.2007 21:15
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
Datum: 09.11.2007 21:23
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...
Datum: 09.11.2007 21:26
Hallo, Habe gerade die Hexfiles aktualisiert wir sprechen hier auch von der version 1.0.13? Gruß Ulrich
Datum: 09.11.2007 21:53
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
Datum: 09.11.2007 21:56
Hi! Da habe ich auch schon wild dran rumgeschaltet, keine Probleme. Könnte es etwa an meinem fliegenden Aufbau liegen !? Gruss, Micha
Datum: 09.11.2007 21:58
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.
Datum: 09.11.2007 22:11
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
Datum: 09.11.2007 22:18
Habe die neue Version auch schon zwei Stunden am Laufen und bisher keine Probleme. Gute Arbeit!
Datum: 09.11.2007 22:57
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.
Datum: 09.11.2007 23:04
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
Datum: 09.11.2007 23:05
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
Datum: 09.11.2007 23:11
@Michael Ja ich nutze den 644er, aber ich werde es gleich mit einem 32er probieren und berichten.
Datum: 09.11.2007 23:32
@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.
Datum: 09.11.2007 23:49
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
Datum: 10.11.2007 00:31
@Ulrich Danke, jetzt läuft der 644er super ;)
Datum: 10.11.2007 00:41
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 :)
Datum: 10.11.2007 10:32
>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.
Datum: 10.11.2007 11:09
@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
Datum: 10.11.2007 11:59
mega32 - ich musste aber telnet und cmd total raus schmeissen...
Datum: 10.11.2007 13:36
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
Datum: 10.11.2007 13:41
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
Datum: 10.11.2007 14:09
Angehängte Dateien: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
Datum: 10.11.2007 14:45
Hallo, Noch einen kleinen Nachtrag, Änderung der Zeile 296 in der enc28j60.c auf delay_us(10000); Gruß Ulrich
Datum: 10.11.2007 14:52
@Ulrich Einfach tolle Sache, jetzt klappt es auch mit mehreren Seiten etc. auf dem 644er ;)
Datum: 10.11.2007 15:17
Angehängte Dateien: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
Datum: 10.11.2007 15:57
Angehängte Dateien: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.
Datum: 10.11.2007 17:27
Angehängte Dateien: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
Datum: 10.11.2007 23:57
@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
Datum: 11.11.2007 00:16
>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.
Datum: 11.11.2007 01:00
@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.
Datum: 11.11.2007 01:10
Kann mir niemand helfen?? :-( Gruß Henning
Datum: 11.11.2007 10:46
Dann hänge doch mal den Schaltplan als PNG-File an, dann würde ich auch mal drüber schauen ;-)
Datum: 11.11.2007 11:52
Angehängte Dateien:@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.
Datum: 11.11.2007 12:39
@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.
Datum: 11.11.2007 13:29
Angehängte Dateien:@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 ;)
Datum: 11.11.2007 13:52
Angehängte Dateien:@Holger Sorry falsche Datei, hier die korrekte ;)
Datum: 11.11.2007 16:26
Angehängte Dateien:@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
Datum: 11.11.2007 16:45
@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.
Datum: 11.11.2007 16:53
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
Datum: 11.11.2007 17:03
1 3 4 6 ->>3 1 6 4 So ;) Frage: Wo hast du den MagJack gekauft, ich suche auch so einen.
Datum: 11.11.2007 17:26
> 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
Datum: 11.11.2007 18:07
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
Datum: 11.11.2007 18:14
@Henning Schaper Passiert gar nichts oder wird erkannt das ein Kabel eingesteckt wird, also leuchtet dann eine LED?
Datum: 11.11.2007 18:30
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.
Datum: 11.11.2007 18:38
@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.
Datum: 11.11.2007 18:43
@henning Hat der Webserver auch sicher eine IP-Adresse aus deinem Netzwerk?
Datum: 11.11.2007 18:47
Soweit ich weiß benötigt man ein gekreuztes Kabel wenn du den Webserver an dein Notebook anschliessen willst...
Datum: 11.11.2007 18:58
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"
Datum: 11.11.2007 18:59
Angehängte Dateien: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
Datum: 11.11.2007 19:08
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
Datum: 11.11.2007 20:45
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?
Datum: 11.11.2007 22:09
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.
Datum: 11.11.2007 22:46
@Florian Also mit der Version vom 25.05.2007 klappt es, installiere dir dich mal die aktuelle WINAVR ;)
Datum: 11.11.2007 23:00
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.
Datum: 11.11.2007 23:32
Hallo Willivonbienemaya könntest die mir die eagle libary, die du dort verwendet hast zukommen lassen?? hast du evntl auch ein eigenes layout gemacht??
Datum: 11.11.2007 23:38
Angehängte Dateien: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.
Datum: 11.11.2007 23:57
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
Datum: 12.11.2007 02:33
Angehängte Dateien:@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
Datum: 12.11.2007 06:53
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.
Datum: 12.11.2007 08:30
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?
Datum: 12.11.2007 08:58
@Florian Sorry, kann ich nichts sagen ist meine erste WINAVR Installation gewesen, aber schaden kann es sicher nichts die alte zu entfernen ;)
Datum: 12.11.2007 16:45
> 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
Datum: 12.11.2007 16:46
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
Datum: 12.11.2007 17:14
@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.
Datum: 12.11.2007 17:22
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
Datum: 12.11.2007 17:29
Angehängte Dateien:@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
Datum: 12.11.2007 17:32
@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.
Datum: 12.11.2007 17:56
Hallo, Ich habe einen ENC mit der Rev. 5 daran funktionieren die Bias Widerstände 2k, 2.3k und 2.7k Gruß Ulrich
Datum: 12.11.2007 18:20
@ Thomas: Hab es jetzt zuerst gelöscht und schon ging es. Vielen Danke Dir und Grüße Florian
Datum: 12.11.2007 19:30
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
Datum: 12.11.2007 19:48
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)ñµµµ!I9II% !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)ñµµµ!I9II% !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!--->
Datum: 12.11.2007 20:02
@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?
Datum: 12.11.2007 20:24
@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
Datum: 12.11.2007 20:28
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 :(
Datum: 12.11.2007 20:29
>> Ist der Server von außen zugänglich um es sich mal an zu sehen?
Leider nein, hab dyndns im Mom nicht eingerichtet.
Datum: 12.11.2007 20:33
@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.
Datum: 12.11.2007 20:35
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
Datum: 12.11.2007 20:42
@Henning Nein, schaltung nach Uli. Nur den Quarz mit 2x 22pF nach Masse. Gruss, Micha
Datum: 12.11.2007 20:46
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 :(
Datum: 12.11.2007 20:48
@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 ?
Datum: 12.11.2007 21:01
Angehängte Dateien:> 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.
Datum: 12.11.2007 21:13
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
Datum: 12.11.2007 21:13
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.
Datum: 12.11.2007 21:15
@Michael J. Läuft bei mir ohne Probleme, vielleicht ein Problem mit dem RS232 Kabel etc. Also der Code ist OK.
Datum: 12.11.2007 21:17
nope, steht auf: CKSEL=0111 SUT=10 also externer Quarz
Datum: 12.11.2007 21:19
Das Kabel, hm .... 1m Kabel (vom STK500) .. unlesbar 1m Kabel (USB - RS232) .. dito
Datum: 12.11.2007 21:23
@Michael J. Vielleicht der MAX232 auf dem Board bzw. die C`s, kalte Lötstelle, Wackelkontakt etc. alles nochmal prüfen.
Datum: 12.11.2007 21:26
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.
Datum: 12.11.2007 21:34
@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
Datum: 12.11.2007 21:40
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 ...
Datum: 12.11.2007 21:55
Hallo, Ich hatte bisher noch nie Probleme mit dem MAX232, ich benutze sogar nur 100nF Kondensatoren. Den MAX232 verbaue ich eigentlich immer. Gruß Ulrich
Datum: 12.11.2007 22:46
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
Datum: 12.11.2007 23:04
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
Datum: 12.11.2007 23:15
@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
Datum: 12.11.2007 23:21
>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.
Datum: 13.11.2007 12:24
Hi, kann man anstelle des 2022-Übertragers auch einen 20F001 nehmen? Oder einen F0041 von einer 10/100 Realtekkarte?
Datum: 13.11.2007 12:29
Wahrscheinlich schon. Aber die sind wahrscheinlich kleiner (kürzer) und damit müsste das Layout geändert werden.
Datum: 13.11.2007 13:10
@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
Datum: 13.11.2007 16:57
kann man den Übertrager auch sockeln?
Datum: 13.11.2007 19:08
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
Datum: 13.11.2007 20:17
Angehängte Dateien: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 "Webserver ATmega32/644DIP ENC28J60" Gruß Holger
Datum: 13.11.2007 20:21
Hallo @Holger, Habe ich vor, werde ich die Tage noch übernehmen. Gruß Ulrich
Datum: 13.11.2007 20:25
@ Steffen S.
>kann man den Übertrager auch sockeln?
Meiner ist gesockelt. No Problemo.
@ Ulrich
Danke !
Datum: 13.11.2007 21:10
@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
Datum: 13.11.2007 21:26
>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.
Datum: 14.11.2007 09:49
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.
Datum: 14.11.2007 10:55
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
Datum: 14.11.2007 18:24
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/up... 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
Datum: 14.11.2007 18:37
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
Datum: 14.11.2007 19:57
@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.
Datum: 14.11.2007 20:13
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
Datum: 14.11.2007 20:25
@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?
Datum: 14.11.2007 21:45
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
Datum: 14.11.2007 21:49
@Michael Volk Teste mal folgende Änderung in de http.c
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"LED1=1\0")!=0){
PORTA ^= (1<<PA0);
http_entry[index].first_switch = 1;
}
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"LED2=2\0")!=0){
PORTA ^= (1<<PA1);
http_entry[index].first_switch = 1;
}
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"LED3=3\0")!=0){
PORTA ^= (1<<PA2);
http_entry[index].first_switch = 1;
}
|
ersetzen durch
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"GET /?LED1=1\0")!=0){
PORTA ^= (1<<PA0);
http_entry[index].first_switch = 1;
}
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"GET /?LED2=2\0")!=0){
PORTA ^= (1<<PA1);
http_entry[index].first_switch = 1;
}
if (strcasestr((char*)ð_buffer[TCP_DATA_START_VAR],"GET /?LED3=3\0")!=0){
PORTA ^= (1<<PA2);
http_entry[index].first_switch = 1;
}
|
Datum: 14.11.2007 22:01
Hi! Jetzt wiederholt er keine Schaltvorgänge, allerdings lässt sich so nur ein Ausgang gleichzeitig umschalten :( Gruss, Micha
Datum: 14.11.2007 22:09
@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.
Datum: 14.11.2007 22:15
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
Datum: 14.11.2007 22:16
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.
Datum: 14.11.2007 22:47
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
Datum: 14.11.2007 22:51
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
Datum: 14.11.2007 22:53
@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.
Datum: 14.11.2007 23:50
@Ulrich Mit der 1.0.20, also MTU-Wert 600 und kleinerem Auth-Buffer klappt es ;) Danke, super Arbeit.
Datum: 15.11.2007 11:41
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.
Datum: 16.11.2007 07:08
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
Datum: 16.11.2007 08:15
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
Datum: 16.11.2007 08:22
@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.
Datum: 16.11.2007 11:36
@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
Datum: 16.11.2007 12:05
@Steffen Ich habe zum einen folgendes Beispiel genutzt: http://www.tecchannel.de/kommunikation/e-mail/4017... 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 ;)
Datum: 16.11.2007 12:14
Angehängte Dateien:@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 ;)
Datum: 16.11.2007 12:17
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.
Datum: 16.11.2007 14:20
Hallo @Thomas Heldt Den Arp Request würde ich so gestalten, ohne Warteschleife.
//ARP Request senden if (arp_request(MAIL_IP)) { MAIL_DEBUG("MAIL Server gefunden!!\r\n"); .... .... .... return; } MAIL_DEBUG("Kein MAIL Server gefunden!!\r\n"); return; |
Gruß Ulrich
Datum: 16.11.2007 15:34
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
Datum: 16.11.2007 15:47
@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 ;)
Datum: 16.11.2007 16:31
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):
if(var_array[ b]==0) memcpy (Ziel, "AUS\0", 4); else 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.
Datum: 16.11.2007 17:07
Hallo @Henning läuft jetz dein Board mit dem Magjack, wenn ja was wars? MfG Achim
Datum: 16.11.2007 17:22
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
Datum: 16.11.2007 17:40
Hallo @Henning kann man von Dir eventuell eine Platine(n) bekommen und die Eagle Dateien? MfG Achim
Datum: 16.11.2007 18:00
Hallo, hier mein Code, wie ich den Zustand von Variablen als Text und in Radiobuttons darstelle:
//Ersetzen der Variablen %VI@00 bis %VI@09 durch "EIN" oder "AUS"
if (strncasecmp_P("%VI@",http_entry[index].new_page_pointer-1,4)==0)
{
b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);
if(var_array[ b] !=0 )
memmove(&var_conversion_buffer, "EIN\0", 4);
else
memmove(&var_conversion_buffer, "AUS\0", 4);
str_len = strnlen(var_conversion_buffer,MAX_VAR_ARRAY);
memmove(ð_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len-1;
http_entry[index].new_page_pointer = http_entry[index].new_page_pointer+5;
}
//Einsetzen der Variablen %VR@00x bis %VR@09x durch checked wenn var_array[00..]=x
if (strncasecmp_P("%VR@",http_entry[index].new_page_pointer-1,4)==0)
{
b = (pgm_read_byte(http_entry[index].new_page_pointer+3)-48)*10;
b +=(pgm_read_byte(http_entry[index].new_page_pointer+4)-48);
if(var_array[ b] == (pgm_read_byte(http_entry[index].new_page_pointer+ 5 )-48))
memmove(&var_conversion_buffer, "checked\0", 8);
else
memmove(&var_conversion_buffer, "\0", 1);
str_len = strnlen(var_conversion_buffer,MAX_VAR_ARRAY);
memmove(ð_buffer[TCP_DATA_START+a],var_conversion_buffer,str_len);
a += str_len-1;
http_entry[index].new_page_pointer = http_entry[index].new_page_pointer+6;
}
|
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?
Datum: 16.11.2007 18:02
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
Datum: 16.11.2007 18:11
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.
Datum: 16.11.2007 18:20
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
Datum: 16.11.2007 18:22
@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
Datum: 16.11.2007 18:35
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..
Datum: 16.11.2007 18:44
@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?
Datum: 16.11.2007 19:01
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.
Datum: 16.11.2007 19:35
Angehängte Dateien: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.
Datum: 16.11.2007 19:40
@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.
Datum: 16.11.2007 19:41
@ 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
Datum: 17.11.2007 11:12
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
Datum: 17.11.2007 11:23
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!
Datum: 17.11.2007 13:19
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
Datum: 17.11.2007 14:54
@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.
Datum: 17.11.2007 16:17
@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
Datum: 17.11.2007 16:44
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?
Datum: 17.11.2007 16:51
@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.
Datum: 17.11.2007 17:17
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
Datum: 17.11.2007 17:30
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
Datum: 17.11.2007 18:22
@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.
Datum: 17.11.2007 18:41
Hallo, einfach eine IF-Abfrage einfügen:
//Schaltet Ausgänge am AVR je nach Headerinhalt //oder Startseite (POST) Schaltdaten am Ende vom Header if((http_entry[index].http_auth) { if (strcasestr((char*)ð_buffer[a],"LED1=1\0")!=0){PORTA ^= (1<<PA0);} if (strcasestr((char*)ð_buffer[a],"LED2=2\0")!=0){PORTA ^= (1<<PA1);} if (strcasestr((char*)ð_buffer[a],"LED3=3\0")!=0){PORTA ^= (1<<PA2);} } break; |
Gruß Ulrich
Datum: 17.11.2007 18:50
@ 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
Datum: 17.11.2007 19:14
Angehängte Dateien: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.
Datum: 18.11.2007 01:27
Hallo, hat hier schon mal jemand vorbeigeguckt: http://benshobbycorner.nl/ da könnt' man sich fast noch'n Paar Ideen holen ;-)
Datum: 18.11.2007 10:39
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?
Datum: 18.11.2007 11:18
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
Datum: 18.11.2007 11:59
Das kann ich leider nicht bestätigen, manchmal startet er einfach nicht richtig und ist dann auch nicht erreichbar. Auch nicht nach mehreren Pings.
Datum: 18.11.2007 12:16
@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
Datum: 18.11.2007 12:22
@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.
Datum: 18.11.2007 13:22
Hallo, Habe die Version 1.0.24 online gestellt! Hier sollten die Initprobleme mit dem ENC28J60 beseitigt sein. Gruß Ulrich
Datum: 18.11.2007 13:58
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.
Datum: 18.11.2007 14:11
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
Datum: 18.11.2007 15:36
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.
Datum: 18.11.2007 16:03
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
Datum: 18.11.2007 16:31
Angehängte Dateien: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
Datum: 18.11.2007 20:07
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?
Datum: 18.11.2007 20:46
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
Datum: 18.11.2007 22:53
@ 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%20... Gruß Henning
Datum: 18.11.2007 23:25
@ henning also mich würde es interessieren gruss flexopete
Datum: 19.11.2007 10:26
Hallo @Henning ich habe auf jedenfall Interesse, super wäre ne Sammelbestellung. MfG Achim
Datum: 19.11.2007 11:40
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.
Datum: 19.11.2007 11:59
@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 ;)
Datum: 19.11.2007 14:11
Steffen wrote: > - gibt es mit Java-Script einfache Möglichkeiten? http://www.liquidx.net/plotkit/
Datum: 19.11.2007 22:15
@ 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.
Datum: 20.11.2007 11:23
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.
Datum: 20.11.2007 12:11
Hallo, Ja es gibt eine Mindestlänge von etwa 60 Bytes. Gruß Ulrich
Datum: 20.11.2007 13:12
Angehängte Dateien:Hallo, Hier mal wieder eine Betaversion habe nach den wünschen von Holger jetzt mal nicht die ganze Stackverwaltung in den Interrupt gelegt. Mal sehen wie die so läuft! Gruß Ulrich
Datum: 20.11.2007 15:23
Kann ich den LM317T mit 3 Kabeln verlängern, damit ich ihn auf einen größeren externen Kühlkörper montieren kann? Oder könnte es dabei zu Störungen durch die Verlängerung kommen?
Datum: 20.11.2007 15:54
Steffen S. wrote: > Kann ich den LM317T mit 3 Kabeln verlängern, damit ich ihn auf einen > größeren externen Kühlkörper montieren kann? Oder könnte es dabei zu > Störungen durch die Verlängerung kommen? 10-20cm sollten gut funktionieren. Länger würde ich es nicht machen.
Datum: 20.11.2007 16:16
Hallo, Die Beta hat noch einen Bug bin gerade dieses am beheben!! Gruß Ulrich
Datum: 20.11.2007 16:59
Hallo, Habe nun die Version 1.0.26 auf meiner Homepage (http://www.ulrichradig.de) online. Gruß Ulrich
Datum: 20.11.2007 17:26
@ Ulrich
>Die Beta hat noch einen Bug bin gerade dieses am beheben!!
Danke für die Mühe. Aber ich finde es ziemlich gruselig
SPI einmal im INT2, im Timerinterrupt und dann noch in der
Mainloop zu benutzten. Dann doch lieber NUR Interruptbetrieb
oder eben Polling. Letzteres dürfte die einzige Lösung für mein
Problem sein. Oder INT2 und Timerint. verbieten wenn man SPI
ausserhalb der Ints benutzen möchte. Ich schau mal was passiert
wenn man auf Polling umstellt.
Datum: 20.11.2007 19:49
Angehängte Dateien:Hallo, Hier läuft der Stack nun im polling mode. Wie läuft der bei euch?? Gruß Ulrich
Datum: 20.11.2007 21:08
Angehängte Dateien:Hi Ulrich,
>Hier läuft der Stack nun im polling mode. Wie läuft der bei euch??
Sorry konnte ich mir noch nicht ansehen.
Da war noch was in arp_request() ! NTP antwortet jetzt viel öfter
positiv.
So sieht das bei mir im Moment aus:
//Nun ist das ARP-Packet fertig zum Senden !!!
//Sendet das erzeugte ARP Packet
ETH_PACKET_SEND(ARP_REQUEST_LEN, buffer);
//Warte auf eine Antwort !
for(unsigned char count = 0;count<20;count++)
{
for(unsigned long a=0;a<100000;a++){asm("nop");};
if(eth_data_present) { eth_get(); break; }
}
Datum: 20.11.2007 21:30
Servus miteinander, bin neu hier. Habe die neue Version (Atmega32) "polling" probiert, alles ok. Gruß GG
Datum: 20.11.2007 22:29
Webserver läuft mit Polling seit 20 Uhr ohne Probleme. Atmega32 Enc-Version 4 Gruß Gerd
Datum: 20.11.2007 22:47
Angehängte Dateien:@ Ulrich
Der Dateiname des Anhanges meines letzten Postings ist
etwas irreführend. Es ist noch kein Polling ! Immer
noch mit Interrupts. Allerdings sehr kurze Interrupts.
Ich habe auch usart_write() noch etwas geändert.
usart_write() kann jetzt mit %s auch Strings aus dem RAM ausgeben.
usart_write("File found %s\r\n",http_entry[index].filename);
Altes usart.c einfach ersetzen.
Gruß
holger
Datum: 21.11.2007 12:23
Hallo, Ich habe mir jetzt nochmal die debugausgaben genauer angeschaut. Mein Problem ist ja, dass der webserver nicht immer richtig startet, d.h. der ENC nicht immer beim ersten Mal richtig initialiesiert wird. Nun ist mir aufgefallen, dass er zwar immer laut debugausgabe Datenpackete empfängt, aber nichts sendet, er macht 5 Sendeversuche, aber es kommt nichts an. Wenn ich ihn dann ein paar mal resette gehts dann irgendwann wieder un er läuft stabil. Woran kann das liegen? Könnte der 25 MHz Quarz vielleicht schlecht sein?
Datum: 21.11.2007 14:15
Hallo, eine kurze Frage zur Schaltung: Ist das wirklich eine 12,6 Z-Diode oder wie ist die Angabe 12V6 zu verstehen? Ich finde nur welche mit 12V Durchlaßspannung. Ein 0,5W-Typ wird reichen, nehme ich an, oder? Bernd
Datum: 21.11.2007 15:33
Mal ne Frage, ich hab nur mal flüchtig reingeschaut, aber es sieht tatsächlich danach aus, als würden alle Stringkonstanten zur Laufzeit im RAM gehalten werden bei deinem Sourcecode, Ulrich! Mit PROGMEM bzw. PSTR() und den ganzen _P Funktionen (zB memcpy_P) kannst du auch Daten im Flash-Speicher handlen und hättest mehr RAM für zum Beispiel den Ethernet Buffer. Btw, warum setzt ihr eigentlich den Ethernet-Buffer so niedrig? Selbst bei 2kB RAM kann man locker die 1500Bytes mit Ethernet-Buffer belegen. So müssen wenigstens keine Pakete fragmentiert ausgewertet werden. Oder hast du noch RAM-Verbrauch durch andere Tabellen bei deinem Server?
Datum: 21.11.2007 16:35
Hallo @Simon K.,
Dann schaue dir den Code mal genauer an! Damit ich nicht zuviel RAM
verschwende, passt schon Holger immer auf.
Natürlich kann ich den Ethernet Buffer größer Dimensionieren! Aber wenn
der Webserver auch mit fragmentierten Packeten klar kommt, habe ich
keine Probleme mit unfragmentierten. Auch wenn ich den Buffer auf 1500
Bytes stellen würde, würde unter Suse10.3 mit Firefox z.B. die Anfrage
fragmentiert. Für Belastungsteste und zur Problemanalyse sind kleine
Packete besser. Jeder kann die MTU Size auch größer wählen wenn er
meint.
>Oder hast du noch RAM-Verbrauch durch andere Tabellen bei deinem Server?
Natürlich brauche ich Tabellen für den Stack ich muß ja mehrere offene TCP -
Verbindungen managen.
Gruß
Ulrich
Datum: 21.11.2007 18:51
@ Ulrich Die 1.0.26 läuft bei mir nicht korrekt. Als erstes musste tcp_timer_call() aus dem Timerint raus. Sonst wurde das SPI Modul in der Mainloop und im Timerint benutzt. Dann knallt es :( Aber auch dann läuft es nur schleppend. Ich hab tcp_socket_process(); udp_socket_process(); aus der Mainloop rausgenommen und wieder in check_packet() eingebaut. Dann gehts richtig zur Sache :) Auch im Polling Mode.
Datum: 21.11.2007 19:17
@ Ulrich
Und da ist der Übeltäter. "while" muss ein "if" sein.
Dann kann man
tcp_socket_process();
udp_socket_process();
wieder in die Mainloop legen.
void poll_eth (void)
{
#if USE_ENC28J60
// while( (ENC28J60_INT_PIN & (1<<ENC28J60_INT_PIN_BIT)) == 0)
if( (ENC28J60_INT_PIN & (1<<ENC28J60_INT_PIN_BIT)) == 0)
{
#endif
Datum: 21.11.2007 19:20
Hallo @Holger, hatte heute Nachmittag schon eine neue Version 1.0.27 online gestellt da ich auch schon probleme hatte. Aber einfach tcp_timer_call() aus dem timer rauswerfen ist auch nicht gut! Gruß Ulrich
Datum: 21.11.2007 19:36
Angehängte Dateien:So habe auch nun den Timer mit berücksichtigt!
Datum: 21.11.2007 19:37
Angehängte Dateien:@ Ulrich >Aber einfach tcp_timer_call() aus dem >timer rauswerfen ist auch nicht gut! Ich meinte ja nicht KOMPLETT entfernen ;) Ab in die Mainloop damit: while(1) { poll_eth(); tcp_socket_process(); udp_socket_process(); if(update_arp_tcp) { arp_timer_call(); tcp_timer_call(); update_arp_tcp=0; } Siehe Anhang. Gruß holger
Datum: 21.11.2007 19:48
Hallo, So habe ich es ja jetzt auch :-) Gruß Ulrich
Datum: 21.11.2007 20:01
@ Ulrich
>So habe ich es ja jetzt auch :-)
Sorry deinen neuen Code hatte ich noch nicht gesehen.
Der benutzt jetzt aber wieder einen INT.
Ich glaube wir überschneiden uns hier ein wenig :(
Ich rede von Polling. Also deine 1.0.26 Poll Version.
Vieleicht sollte ich einfach auf 1.0.30 warten.
Gruß
holger
Datum: 21.11.2007 20:14
Hallo, Ich wollte eine kurzen kleinen INT drinnen lassen, habe sonst wieder probleme mit RTL8019 Karten. ENC28J60 liefen aber im polling problemlos. Aber eigentlich sollte dieser kleine Interrupt keine Probleme mehr bereiten. Gruß Ulrich
Datum: 21.11.2007 20:45
@ Ulrich >Aber eigentlich sollte dieser kleine Interrupt keine Probleme mehr >bereiten. Tut er auch nicht. Man muss sich nur mal auf eine Vorgehensweise einigen. Die gibst du natürlich vor. Du brauchst den INT ? Kein Problem. Ich räum dann einfach gelegentlich mal wieder hinter dir auf wenn du es erlaubst ;)
Datum: 21.11.2007 20:49
Ja ich wollte heute nichts mehr ändern. Es sei denn Du hast noch was für mich! Ich werde nur noch einige Teste fahren.
Datum: 21.11.2007 21:04
Hallo @all, bin gerade am überlegen wie ich ein Display anbinden soll. LCD direkt am Port.A? Somit gehen die analogen Eingänge verloren, oder an einem anderen Port? Oder evt. am I2C Bus (TWI) LCD Module von EA-DOG? Was haltet ihr von einem NTP Server mit DCF77?? Über MMC/SD bin ich auch noch am nachdenken. Mir persönlich würde auch ein 64k I2C EEPROM reichen! Was meint ihr????? Gruß Ulrich
Datum: 21.11.2007 21:14
EA Dog-M an SPI, sollte kaum Probleme darstellen. 3 I/O Pins liegen ja auf dem Board eh noch brach. Wie wäre es mit einem Data-Flash? Gruß Sascha






