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
Gast
#706694
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?
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.
Hallo, Die Beta hat noch einen Bug bin gerade dieses am beheben!! Gruß Ulrich
Gast
#706812
@Gerd G.: Danke.
Hallo, Habe nun die Version 1.0.26 auf meiner Homepage (http://www.ulrichradig.de) online. Gruß Ulrich
Gast
#706898
@ 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.
Hallo, Hier läuft der Stack nun im polling mode. Wie läuft der bei euch?? Gruß Ulrich
Gast
#707075
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; }
}
Gast
#707100
Servus miteinander, bin neu hier. Habe die neue Version (Atmega32) "polling" probiert, alles ok. Gruß GG
Webserver läuft mit Polling seit 20 Uhr ohne Probleme. Atmega32 Enc-Version 4 Gruß Gerd
Gast
#707157
@ 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
Gast
#707491
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?
Gast
#707637
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
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?
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
Gast
#707958
@ 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.
Gast
#707990
@ 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
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
So habe auch nun den Timer mit berücksichtigt!
Gast
#708008
@ 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
Hallo, So habe ich es ja jetzt auch :-) Gruß Ulrich
Gast
#708030
@ 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
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
Gast
#708081
@ 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 ;)
Ja ich wollte heute nichts mehr ändern. Es sei denn Du hast noch was für mich! Ich werde nur noch einige Teste fahren.
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
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
Ich tendiere auch zu einem LCD mit SPI- oder I2C-Anschluss. Den PortA hätte ich gerne noch zur freien Verfügung.
Hallo, An ein Dataflash von Atmel AT45DB041B-RC habe ich auch schon gedacht, und hier herrumliegen. Gruß Ulrich
Gast
#708119
Eine SD/MMC Anbindung mit FAT16 wäre meiner Meinung nach super! Ich weiß zwar nicht was der Webserver dann für Übertragungsgeschwindigkeiten erzielen kann aber so könnte man viel größere Webseiten abspeichern...
Gast
#708134
@ Maik >Eine SD/MMC Anbindung mit FAT16 wäre meiner Meinung nach super! Ich weiß >zwar nicht was der Webserver dann für Übertragungsgeschwindigkeiten >erzielen kann aber so könnte man viel größere Webseiten abspeichern... Beitrag "Re: Webserver ATmega32/644DIP ENC28J60" Ist doch schon vorhanden. Ich lade meine Webseiten von MMC/SD. Muss man nur richtig anschliessen. Und bitte keine Dioden als Spannungsregler !
Gast
#708137
Wie sind denn dann so die Übertragungsraten?
Gast
#708143
Hallo, Also SD/MMC scheint mir nicht so wichtig. Es ist ja immer noch ein embedded Webserver. Wer viele Seiten und Inhalt darstellen möchte nimmt wohl eher einen "richtigen" Server ;-) Und die Ansteuerung bis hin zu richtigem FAT kostet ja ne Menge Ressourcen. Der Fokus sollte (meiner Meinung nach) bei Messung, Steuerung und Überwachung liegen (Temperaturen/... einlesen, LEDs/Relais/... ansteuern, Displays/... zur Anzeige verwenden) - obwohl vielleicht ein weiterer Flash/EEPROM nicht schaden kann ;-) i2c hätte den Vorteil, dass man noch weitere Peripherie anschließen kann. Steffen.
Gast
#708146
>Wie sind denn dann so die Übertragungsraten? >>Unter Linux dauert das laden einer Seite mit 10 Bildern >>bei 30-70kB pro Bild ca. 5s. Unter Windows 30s.
@Steffen >Der Fokus sollte (meiner Meinung nach) bei Messung, Steuerung und >Überwachung liegen (Temperaturen/... einlesen, LEDs/Relais/... >ansteuern, Displays/... zur Anzeige verwenden) - obwohl vielleicht ein >weiterer Flash/EEPROM nicht schaden kann ;-) Das ist auch mein Gedanke, und ich meine 64kBytes für Webseiten über I2C reichen für einen embeddet Webserver aus. Somit könnte die interne Seite aus dem Flash verschwinden, und es würde immernoch alles in einem ATmega32 reinpassen. Obwohl die MMC/SD Anbindung ist schon nicht schlecht vom Holger ;-) Gruß Ulrich
Gast
#708166
>An ein Dataflash von Atmel AT45DB041B-RC habe ich auch schon gedacht, Gibts pinkompatibel auch mit 2MB ! Würde ich einem I2C EEPROM auf jeden Fall vorziehen. >Obwohl die MMC/SD Anbindung ist schon nicht schlecht vom Holger ;-) Danke, aber der Webserver passt dann nicht mehr in einen ATMega32. ATMega644 ist da angesagt.
Hallo. nochmal an alle, die Interesse an meinem Layout hatten. Ich habe es getestet und es läuft super. Hier nochmal der Link: http://www-public.tu-bs.de:8080/~y0027190/final%20board%20for%20123mmx71mm%20box-%20not%20tested/ Dort findet man die Eagle Files und einige Bilder vom fertigem Aufbau mit Gehäuse. Grüße Henning
Zwecks Display; ein einfaches HD44780 für einfache Ausgabe? Einfach einen 8 aus 3 Baustein verwenden; die lassen sich auch kaskadieren. Somit hast Du z.B. 16 aus 4 (nur noch Ausgänge!).
Hmmm, Dataflash wäre was feines. Allerdings wo kauft den ein Normalbürger? Segor scheint nur 4MB, 8Mb und 16MB zu haben. >Zwecks Display; ein einfaches HD44780 für einfache Ausgabe? Einfach >einen 8 aus 3 Baustein verwenden; die lassen sich auch kaskadieren. >Somit hast Du z.B. 16 aus 4 (nur noch Ausgänge!). So ein Display habe ich zu Hause. Gab es mal bei MIR (R.I.P.) in München. Mir wäre aber ein Standard-Display lieber.
holger wrote: > @ Maik > >>Eine SD/MMC Anbindung mit FAT16 wäre meiner Meinung nach super! Ich weiß >>zwar nicht was der Webserver dann für Übertragungsgeschwindigkeiten >>erzielen kann aber so könnte man viel größere Webseiten abspeichern... > > > Beitrag "Re: Webserver ATmega32/644DIP ENC28J60" > > Ist doch schon vorhanden. > Ich lade meine Webseiten von MMC/SD. > Muss man nur richtig anschliessen. > Und bitte keine Dioden als Spannungsregler ! Klingt sehr interessant!!! Kannst du mir deinen Schaltplan mal zuschicken?! Gruß Kornelius
Gast
#708203
>Klingt sehr interessant!!! Kannst du mir deinen Schaltplan mal >zuschicken?! So sieht mein Board aus. Das hat mit Ulrichs Board nicht wirklich viel gemeinsam. Glücklicherweise sind die meisten Anschlüsse am ATMega identisch. So konnte ich mit seinem Code rumbasteln. Ist auch ISP tauglich.
holger wrote: >>Klingt sehr interessant!!! Kannst du mir deinen Schaltplan mal >>zuschicken?! > > So sieht mein Board aus. Das hat mit Ulrichs Board nicht > wirklich viel gemeinsam. Glücklicherweise sind die meisten Anschlüsse > am ATMega identisch. So konnte ich mit seinem Code rumbasteln. > Ist auch ISP tauglich. Sehr schick! Hatte auch schon mal einen Microchip Webserver mit einem SD Card Controller aufgebaut um den Flash zu entlasten aber der hatte eine maximale Übertragungsrate von 5 KB/s... Und deine Sourcedateien weiter oben im Forum sind aber auf dieses Board zugeschnitten?! D.h. der läuft auf diesem Board?
Gast
#708437
>Und deine Sourcedateien weiter >oben im Forum sind aber auf dieses Board zugeschnitten?! D.h. der läuft >auf diesem Board? Ja, musst natürlich noch nen ATMega644 dranfummeln ;)
Gast
#708844
Hallo @Holger SD Karte ist auch super, wenn man den Webserver als Danelogger einsetzen will! Gibs von Deinem Board auch Eagle Dateien? Oder ist das zu unverschämt? MfG Achim
Hi! Wegen Pins für zukünftige Funktionen: ich habe das LCD-Display an Port D2-D5 für D0-D3 des Displays und an Port C4-C7 die Steuerung. An Port PB4 hängt ein Servo (Webcamsteuerung), PWM über Timer0. An Port PC0+PC1 hängt über TWI ein Temp-Sensor DS1621. Port A hat im Moment 8 LEDs, das ist aber natürlich variabel. Gruss, Micha
Hallo @all, Habe hier mal eine kleine Schaltung für ein standart LCD-Display welches nur 3 Anschlüsse am Webserver benötigt. (PC2,3 und 4) Werde den Code im Webserver demnächst benutzen. Gruß Ulrich
Gast
#709044
Hi, die Routinen "usart_write_P" und "lcd_print_P" unterscheiden sich im Inhalt nur wenig. Läßt sich das nicht anders machen? So ähnlich like "stdio", oder als zusätzliche Parameterübergabe? Sollte ich, anstatt doof zu fragen, einfach mal selber loslegen? ;-) mfg Lötlackl
Gast
#709076
was soll das Ziel der "stdio"-ähnlichen Sache sein? Willst du per define bestimmen können, ob du RAM oder FLASH nutzt?
Hallo @Lötlackl Das ist ja nur ein Beispiel gewesen! So kann das Display wenigstens auch in andere Projekte benutzt werden. Gruß Ulrich
Gast
#709218
Hi, @Steffen > was soll das Ziel der "stdio"-ähnlichen Sache sein? > > Willst du per define bestimmen können, ob du RAM oder FLASH nutzt? Nöö, man kann der stdio mitteilen, wohin sie ausgeben soll (Stichworte stdout, stderr). @Ulrich Da hast Du schon recht, ist mir eben nur aufgefallen. mfg Lötlackl
Hi! Zum testen die aktuelle Version von Uli samt meinen Änderungen: LCD-Display Temperatur-Sensor Servo-Webcam Gruss, Micha http://mikrocontroller.homedns.org/
Gast
#709372
hey, cooler Server - und das auf einem AVR. Insbesondere der Http-Kram gefällt mir. Sowas wie den IFRAME habe ich schon (in Gedanken - leider nicht mit Google) gesucht. Eine Frage dazu. Ist es möglich, eine Website zu "embedden" die einen Refresh hat und dieser wird dann nur in diesem Bereich neu geladen? Das würde mich interessieren, da ich momentan eine SVG-Datei erstelle, die eine (Spannungs-, Temperatur-,...)History darstellen kann. Diese (und nur diese) soll sich selbständig alle 2 Minuten reloaden können. Gruß Steffen.
Gast
#709395
Achja, zum Thema Display wollte ich noch meinen Senf geben: Ich finde es eine gute Idee das Display über wenige Pins anzuschließen. Somit kann es in einer Vielzahl an Projekten (temporär) verwendet werden. Die paar Ports hat man oft noch frei. Den Ansatz könnte man ja fast noch einen Schritt weiter treiben und vielleicht einen tiny2313 verwenden (1,30EUR) statt eines Logikchips. Dann ein einfaches Protokoll hin zu dem Slave. Den Vorteil sehe ich darin, dass für die Kommunikation eine Art Standard verwendet werden kann und erst der tiny das konkrete Display ansteuert. So kann ein Textdisplay genauso verwendet werden wie ein Grafikdisplay. Beispiel: Hauptcontroller hat ein paar wenige Befehle, die eigentlich komplett an den tiny gesendet werden (Routinen auf dem tiny sparen Flash auf dem Hautpcontroller): - disp_print() - disp_clear - disp_line, disp_circle,... (wird nur umgesetzt, wenn es unterstützt wird) ... Und dann wird der entsprechende Text auf dem (Text oder Grafik-) Display angezeigt. Es könnte auch eine serielle Schnittstelle dahinter hängen, oder ein CAN-Bus-Interface oder PAL-Encoder oder oder oder. Leider habe ich momentan keine Zeit für solche Spielerein und freue mich, dass Uli und andere ihre Programme offen legen. Damit kann man sich auf die Anpassung konzentrieren und kommt in endlicher Zeit zu einem Ergebnis - so macht das Basteln dann auch Spass :-) Gruß in die Runde Steffen.
Gast
#709712
mal was nebenbei für was brauch ich so ein Ding?
Hallo, Wofür brauche ich einen Fernseher? Warum lebe ich?? Diese Webserver ermöglicht mir das Schalten, Steuern und Überwachen von jedem Ort auf dieser Welt. Gruß Ulrich
Gast
#710022
Ich habe den Thread mit Freude verfolgt, zum Thema
>für was brauch ich so ein Ding?
Ich bin dabei, mir eine Heizungssteuerung (Regelungen) für Blockspeicher
(Solar, elektrisch zugeheizt) und noch diversen Wärmetauschern
aufzubauen.
Mit freundlicher Genehmigung von Ulrich würde ich den Webserver dort
integrieren, um den Status (Temperaturen usw.) ansehen (mitloggen) zu
können und ggf. neu zu parametrieren. Falls machbar auch übers www.
Ist glaub' ich ein schöner Einsatzzweck.
;-)
@Steffen Hi! Danke für die Blumen, an dem html habe ich auch ne ganze Zeit gesessen. Das mit dem automatischen refresh habe ich auch im Hinterkopf. Das geht mit Ajax ganz gut, lass mir mal ein paar Minuten... :) Gruss, Micha
Gast
#710117
Kann mir jemand das Ethernet IC für den Server zu verkaufen? Bei sontwo wollte ich das nicht bestellen wegen Versand->Ein Bauteil=Lohnt sich nicht. Ein gepolsterter Umschlag(unversichert) währe vollkommen i.O. Danke schonmal
@Steffen Hi! Das obere, rechte Fenster mit der Temperaturanzeige wird nun alle 5s aktualisiert, AJAX sei Dank. Im Moment spielt DynDNS verrückt, deshalb hier die ip: http://91.66.67.178 Gruss, Micha
Gast
#710206
@Michael Bei mir funktioniert es nicht. Es steht nur "Lade..." und dann passiert nichts mehr in dem Fenster oben rechts. Ich habe hier XP und Firefox 2.0.0.9. Kann es vielleicht daran liegen, dass gerade zu viele darauf zugreifen? (Der Rest der Seite funktioniert und wird angezeigt) Aber ich habe mich gestern Nacht auch noch mal kurz in Ajax eingelesen. Damit sollte es auf jeden Fall gehen. Vielleicht komme ich am WE noch mal dazu, einen Blick auf den Server zu werfen :-) Steffen.
Gast
#710207
hat gerade geklappt, war vielleicht nur überlastet :-)
Hallo @Michael Volk, Du solltest mal deine TCP Connection etwas höher setzen. Gruß Ulrich
Gast
#710215
@ Ulrich
Der RAM Sparer ist mal wieder online ;)
if{ strcasestr((char*)ð_buffer[a],"LED1=1\0")!=0){PORTA ^= (1<<PA0);}
ersetzen durch
if{ strcasestr_P((char*)ð_buffer[a],PSTR("LED1=1"))!=0){PORTA ^=
(1<<PA0);}
Und
memmove(&var_conversion_buffer, "EIN\0", 4);
ersetzen durch
strcpy_P(var_conversion_buffer, PSTR("EIN"));
Gruß
holger
Hallo @Holger, Danke!! Ist nun in der neuen Version geändert. Hinzu gekommen ist noch die Anbindung des LCDs mit 3Port Pins. Hallo @all, also Version 1.0.29 steht nun online!!! Gruß Ulrich
Gast
#710324
Hallo, dies ist wirklich ein tolles vielseitiges Projekt. Mich würde noch die Anbindung einer Kamera interessieren. So wie beim Webserver vom Simon mit der MCA 25 von Sony. Würde es Probleme geben wenn ich versuchen würde diese zu implementieren? Hat sich schon einer daran gewagt? Gruß Martin
Hallo, Die Implementation von einer MCA25 Kamera, Source geschrieben von Simon, war auch schon bei meinem alten Stack vorhanden. Da ich hier auch noch eine MCA25 liegen habe, wäre es super wenn ich diese auch anbinden könnte. Also die Anbindung sollte eigentlich keine Probleme bereiten. Ich habe leider nicht immer die nötige Zeit (Familie). Allerdings Versuche ich mein bestes. Gruß Ulrich
Gast
#710330
Hallo Ulrich, vielen Dank für die schnelle Antwort. Ich wollte weder meckern noch Druck ausüben. Ich wollte mich nur vergewissern ob es grundsätzlich möglich ist eine Kamera anzuschließen. Es wäre toll wenn Du diese mal integrieren könntest. Ich wollte in Kürze das Projekt nachbauen. Dann könnte ich auch versuchen den Kameracode einzubinden. Hast Du schon einen Liefertermin für die Platine? Gruß Martin
@Uli Hallo! Ich glaube ich bin auf einen Fehler gestossen: Ich nutze mehrere Variabeln wie time (von Dir für die aktuelle Zeit), uptime und counter (von mir, auch in timer.h definiert). Ich hatte mich gewundert, dass ab und zu im laufenden Betrieb die Zeit, der Counter und Uptime auf 0 gesetzt werden. Andere Variablen, wie zB die ARP-Tabellen, bleiben unberührt. Es ist nachvollziehbar, wenn man eine Seite sehr oft, sehr schnell hintereinander läd. Dann setzt er diese Variablen unmotiviert auf 0. Ein Reset scheint es nicht zu sein, da die Ready-Meldung über seriell nicht kommt. Ich habe das auch mit Deiner aktuellen Version 1.0.29, ohne Veränderungen am Code, nachvollziehen können. Dazu habe ich 5-10 mal die Seite schnell aktualisiert und dann per Kommandozeile Time gecheckt. Liegt das Problem evtl. bei mir oder könnte da im Code was verwurschelt sein? Gruss, Micha
Hallo, Jo, den Fehler konnte ich lokalisieren!! In Version 1.0.30 ist dieser dann beseitigt. Diese Version kommt noch laufe der nächsten 2 Stunden. Gruß Ulrich
Hallo, Version 1.0.30 ist online! Gruß Ulrich
@Uli Danke, Super! Kannst Du kurz erklären, woran es lag? Gruss, Micha
Hallo, Der Fehler war in Stack.c ganz am ende bei der Funktion "tcp_index_del" Gruß Ulrich
Gast
#710405
@Holger Haben die RAM-Sparmaßnahmen eigentlich einen Einfluss auf die Geschwindigkeit? Oder können die Zugriffe genauso Effizient wie RAM-Zugriffe behandelt werden? Gruß Steffen.
Gast
#710417
Hallo, erstmal vielen Dank Ulrich für diesen schönen Webserver. Es läuft alles problemfrei bis auf die IP Einstellung per RS232. Mein Nachbau übernimmt die einfach nicht. Die Zeichen werden einfach ignoriert. Der Datenaustausch mit dem Telnetprogramm funktioniert, ich denke es liegt also nicht an der Hardware. Was mache ich da falsch? Ich nutze Hyperterminal 5.1 9600,8,n,1 kein handshake Achja im Quellcode selber lässt sich die IP ändern. Für eine Antwort bin ich sehr dankbar Grusz Sebastian
@Uli Danke! Der Fehler scheint behoben zu sein. Selbst bei hohen Besucherzahlen und durch die automatische Aktualisierung erzeugter Traffic führen nicht mehr zu den gelöschten Variabeln. Eins ist noch sonderbar: Wenn er beim Start keinen Zeitserver findet, ist er sehr schwer ansprechbar für normale Website-Abrufe. Erst wenn er nach einem Reset den Zeitserver findet und die Uhr stellt, läuft alles normal. Vielleicht findet Deine magische Hand ja auch da ein falsches Bit. Gruss, Micha
Gast
#710474
Hallo zusammen! So der Umbau meines PLatinenlaminieres ist fast abgeschlossen, jetz kann ich dann auch mal einsteigen :-) @Michael: Kann es sein, dass deine Webcam ab und zu aussetzt? hab grad auf deinem Server gespielt und nach einer gewissen Zeit wird die Webcamanzeige nicht mehr aktualisiert, die automatische Aktualisierung funktioniert aber weiterhin... MfG Simon PS: Macht weiter so!!! Echt ein sehr lehrreiches Projekt :-)
Hi! Hm, die Webcam läuft natürlich über einen PC, nicht über den AVR :) Warums da manchmal klemmt - keine Ahnung :) Gruss, Micha
Gast
#710502
Bis zu welcher Baudrate funktioniert der Datenaustausch zwischen RS323 und telnet? Habe da ein serielles Geräte, dass ich gerne übers Netzwerk bedienen möchte, welches allerdings mit 38400 baud läuft. Ist das möglich?
Hallo @all habe nochmal eine neue Version olnine gestellt 1.0.31! @Steffen S. Sollte eigentlich möglich sein! Allerdings kann es sein das der Ringbuffer vergrößert werden muß. Das erfolgt in der Zeile 15 von usart.h wenn Du einen Mega644 benutzt kannst du den Buffer bis 500 einstellen einfach mal testen. Gruß Ulrich
Gast
#711383
Hallo, wie kann ich Zahlen aus einem Textfeld in eine Variable einlesen? Hat jemand schon zufällig so eine Routine für die httpd.c geschrieben?
Gast
#711436
@ Ulrich
Hier noch ein paar Stellen wo man noch RAM freimachen kann:
In stack.c
icmp_data[] braucht man nicht.
//Add ICMP Data
/*
for (unsigned char a = 0;a<32;a++)
{
eth_buffer[ICMP_DATA+a] = icmp_data[a];
}
*/
memcpy_P(ð_buffer[ICMP_DATA],
PSTR("abcdefghijklmnopqrstuvwabcdefghi"),32);
In telnetd.c
memcpy_P(ð_buffer[TCP_DATA_START],
PSTR("Start Telnet Server:\r\n"),22);
In http_get.c
memcpy_P(ð_buffer[TCP_DATA_START],
PSTR("GET /xampp/index.php HTTP/1.1\r\nHost:
192.168.0.99\r\nConnection: Keep-Alive\r\n\r\n"),77);
Ergibt zusammen einen schönen Batzen den man besser auf
die MTU_SIZE drauflegen kann :)
Gruß
Holger
Hallo Holger, habe die Änderungen übernommen. Danke! Gruß Ulrich
Gast
#711518
Hallo Jungs, ich habe ja vor einiger Zeit mal wegen "History"-Funktion angefragt. Dabei habe ich mich dann für die Umsetzung per SVG-Datei entschieden. Vorteil/Nachteil: + Vektorformat + XML-Basis --> Bilddaten können "einfach" per Text erstellt werden + recht sparsames Format für die Darstellung von Linien - Browser muss SVG unterstützen - auch so eine XML-Datei zu erstellen ist nicht ganz so einfach - bei einem Reload wird im Firefox kein Bild angezeigt (nicht mal das alte) Hier kurz die Skizze meiner Umsetzung (der Code ist definitiv nicht vorzeigefähig: Erstellen des Bildes: Ich habe genauso wie bei Bilddateien oder Webpages ein PROGMEM-Feld erstellt mit dem SVG-Bild (siehe Wikipedia):
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
An die Stelle, an der ich die History-Linie mit dem Verlauf haben möchte, habe ich in bereits bekannter Form "%VA@xx" gesetzt. Dieser String wird durch Stützpunkte ersetzt, die dann die Linie bilden.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
in der HTML-Datei steht dann in etwa folgendes:
1 | |
2 | |
Das SVG-Bild wird allerdings nicht als img eingebunden, sondern als Html-Objekt. Ich habe in meiner Webpage folgendes:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Das ganze habe ich in einem IFRAME eingetragen und im Header das reload-meta-tag eingefügt. Damit kann ein Reload auch ohne Ajax durchgeführt werden. Die angezeigten Bilder kommen aus einem globalen Feld, welches zur Zeit mit statischen Daten "gefüttert" ist. Noch mal deutlich: Ich beschreibe hier keine tolle Lösung, sondern nur eine Idee, die vielleicht von euch verwendet oder angedacht werden kann. Anbei ein Screenshot, wie es dann aussieht. Steffen.
Hi Steffen! Gute Idee, werde das auch mal so versuchen! Im Moment zeichne ich einen Temperaturverlauf mit Ulis balke.gif als Balkengrafik :) Achso, AJAX hat den Vorteil, dass diese nervige klicken des IE beim Reload ausbleibt :) Gruss, Micha
Gast
#711560
hmmm....das mit dem Klick ist natürlich ein guter Grund. Das werde ich mir aber erst anschauen, wenn ich es geschafft habe meinem Server ein wenig Leben zu geben - wenigstens ein Temp.Sensor sollte heute noch ran - bis jetzt sind das ja alles nur Variablen. Steffen.
Gast
#711593
Hallo @Steffeen weiter oben habe ich schon mal xml angesprochen.....SVG ist doch schon ein Schritt in diese Richtung.... Ich bin leider auf dem "kleinen" Atmel nicht zu Hause... ..aber eine Einfache XML-Ausgabe der Form <?xml version="1.0" encoding="utf-8"?> <Temperatur> <t>20.3</t> <t>21.0</t> <t>21.1</t> ...... </Temperatur> würde ja reichen. Die umwandlung kann man dann im Browser mit XSL machen..... MfG Achim
Ich würde das Plotten komplett in JavaScript machen, Link zu einer fertigen Bibliothek habe ich weiter oben gepostet. Der Vorteil ist dass der Server dann nur noch eine (z.B. kommagetrennte) Liste der Werte bereitstellen muss die sich der Browser per JavaScript abholen und beliebig weiterverarbeiten kann.
Gast
#711688
@Andreas: Ja den Link hab ich mir schon mal angeschaut. Ich muss aber zugeben, dass es mir alles recht komplex erscheint. Es werden ja mehrere .js-Dateien eingebunden und geladen. Da ist die Belastung sicher auch nicht ganz gering. Rein von der Optik, kann man dann allerdings auch tolle Sachen machen und der Rechenaufwand wird in Richtung Client verschoben, was dem kleinen 8-Bitter sicherlich gefällt :-) Aber ich werde mich mal damit beschäftigen. Steffen.
Gast
#711695
Die .js Dateien müssen ja nicht auf dem AVR liegen....
Gast
#711725
Kann man eigentlich diesem MiniWebServer auch 2 IP-Adressen zuweisen? Ich frage weil man dann ähnlich einer FritzBox eine Feste IP hat die man zum einstellen des Servers Verwenden kann. So das man auch die 2. IP via Netzwerk einstellen könnte. Hat der Server eigentlich schon DHCP oder kommt das noch? P.S.: Ich habe leider :-( noch keine MiniServer, aber eine Probesatz ENC28J60 habe ich mir schon von Microchip zusenden lassen für sage und schreibe 0,-EURO (Supi)
Gast
#711810
@Stefan Da ich nicht vor habe den Server im "richtigen" Internet laufen zu lassen, sondern mehr so als Spass in meinem Intranet, muss ich es dann ja woanders hosten - und nur wegen der History noch einen PC (?) laufen zu lassen, finde ich etwas übertrieben. Mal sehen, was sich da basteln lässt... Steffen.
@ Ulrich erst einmal ein großes Lob, für deine Arbeit hier. Ich verfolge dieses Forum mit großem Interesse und habe den kleinen Webserver aufgebaut. Hier bin ich auf ein kleines Problem gestoßen: Wenn ich unter Windows eine Telnet-Session starte, wird unmittelbar die Meldung "Sart Telnet Server:" ausgegeben. Wenn ich diese Verbindung beende und erneut starte, vergehen nun allerdings einige Sekunden bis diese Meldung wieder erscheint. Anders verhält es sich, wenn man nach Beenden der Telnet-Session über die RS232 mit der CPU kommuniziert, und dann Telnet wieder startet. Leider kann ich die Ursache dafür in Deinem Code nicht finden. Natürlich ist das kein riesen Problem, könnte aber auf einen noch nicht erkannten Fehler hinweisen. Stephan
Hallo Gerth, Der Webserver bzw. Telnetserver benötigt halt seine Zeit bis dieser bemerkt das die Telnetsession beendet wurde, und neugestartet wird. Einfach nach dem Neustart der Session ein Return losschicken sollte dann schneller gehen. Gruß Ulrich
Gast
#712304
Wie flasht man eigentlich den atmega644 mit AVR Studio? Ich kann den 644er dort gar nicht auswählen.
Hallo funker, Der ATmega644 kann ohne Probleme aus WinAVR programmiert werden. Die Fusebits werden dabei automatisch nach meinen Vorgaben gesetzt. Hallo @all, Die Platinen können nun über meine Homepage im Onlineshop geordert werden. Hierbei handelt es sich erstmal um georderte 50 Stück! Der Versand erfolgt dann zwischen 6.12 und 10.12.2007. Gruß Ulrich
Gast
#712982
Hi! habe grade ausprobiert, was passiert, wenn ich die Passwortabfrage einfach leer lasse und ein paar mal schnell hintereinander OK drücke, dann hängt der webserver ganz kurz, ist also für ca. 3 sekunden nicht ansprechbar. Das könnte ja vielleicht für Angreifer von außen eine Schwachstelle sein, den webserver durch ständige Anfragen "lahmzulegen" (z.b. durch eine Brute-Force-Attacke). Ist es möglich einen Schutz einzubauen, der nach z.b. 5-maliger falscher Passworteingabe die IP für eine gewisse Zeit sperrt?
Hallo, Mann kann den Schutz übertreiben, bester Schutz ist die Adresse des Servers gar nicht preisgeben! Problem ist bei jeder Passworteingabe wird ein TCP Socket geöffnet max. 5 Socket kann der Webserver in der Defaulteinstellung öffnen. Diese werden aber nach einer definierten Zeit wieder geschlossen (somit ist der Server wieder erreichbar). >Ist es möglich einen Schutz einzubauen, der nach z.b. 5-maliger falscher >Passworteingabe die IP für eine gewisse Zeit sperrt? Möglich ist alles! Zu bedenken ist aber der Webserver hat nur 2kByte RAM. Des weiteren, selbst ist der Mann. Ich werde hier nicht anfangen, für jeden eine individuelle Lösung anzufertigen. Gruß Ulrich
Hallo, Ich noch mal, allerdings kann ich den Server via "Syn Flood" auch einfacher lahm legen. Und wenn du die IP sperrst, benutze ich z.B. ein Tool womit bei jeder Anfrage eine neue IP habe. Wie viele IPs will man sperren? 4Bytes pro IP, bedeutet bei 2kBytes RAM kann ich 512 Adressen aussperren. Dann habe ich aber auch kein RAM mehr für mein Programm. Das ist aber alles nur fiktiv, solche Programme dürfen ja laut unsere Regierung nicht mehr verwendet werden. Also kann ich jetzt als Netzwerkadmin beruhigt schlafen (scherz). Gruß Ulrich
Gast
#713253
@Ulrich: ok, zugegeben, meine Idee ist vielleicht etwas übertrieben gewesen und würde die begrenzten RAM-Ressourcen des ATMELs sprengen. War halt mal nur so ne Idee ;-) Und gegen einen Syn Flood würde das ja sowieso nicht helfen. Außer vielleicht mein Router, der kann Syn-Floods erkennen und für eine definierte Zeit blocken.
Ich bin mal der Sache mit dem Java-Script Diagramm nachgegangen. Das, was Andreas oben angeboten hat ist natürlich genau das richtige, aber gerade wenn man alles auf den AVR legen will (.js und .html und .csv) dann reicht der Speicher ganz sicher nicht. Ich hab mal schnell (relativ quick & dirty) was zusammengebastelt. Ist sicher noch ausbaufähig, zeigt aber, wohin ich will. Mit etwas trickserei (zB Zusammenfassen der Styles in einen CSS Bereich) kann man die Größe der .js Datei (aktuell 4kiB) noch weiter drücken. Das Script zweckentfremdet AJAX um eine .CSV Datei zu öffnen. Die Daten daraus werden in ein Array geschrieben. Anschließend wird automatisch die Balkenbreite bestimmt (Je nach Gesamtbreite des Diagramms und Anzahl der Werte in der .CSV Datei). Die Balken werden mit div's realisiert. Also sollte das ganze sowohl im IE als auch im FF Browser funktionieren. Angehangen mal das .js Script zum schnellen drüberfliegen. Und hier noch eine Demonstration: http://klinkerstein.m-faq.de/JsBarDia/ (Lädt alle 5 Sekunden ein neues .CSV File) PS: Eventuell bringts dem einen oder anderen was. Eventuell wirds ja sogar noch von ein paar Leuten ausgebaut werden ;) EDIT: in dem angehangenen Script ist noch ein Fehler betreffend IExplorer. Aber auf der Domain ist das Script schon korrigiert.
Du könntest die statischen Dateien gzip-komprimiert auf dem Controller speichern und mit dem Header "Content-Encoding: gzip" an den Browser schicken. Ist zwar nicht ganz HTTP-konform (ein Server muss auch unkomprimierte Daten bereitstellen können), funktioniert aber mit praktisch allen Browsern.
Gast
#714495
@ Simon K. Bei mir laufen deine Seiten von einer SD Karte. Das größte Problem ist das du lange Dateinamen verwendest: JsBarDia.html SampleData.csv Noch schlimmer sind Dateien mit Pfadangaben: JsBarDia-Dateien/JsBarDia.js Da müsste man einen Pfad Parser einbauen. Das ist einfach Unsinn auf einem uC. Ein uC ist kein PC mit jeder Menge RAM. Nimm kurze 8.3 DOS Dateinamen, dann kann man den Webserver mit einem einfachen kleinen FAT Dateisystem betreiben.
holger wrote: > @ Simon K. > > Bei mir laufen deine Seiten von einer SD Karte. > Das größte Problem ist das du lange Dateinamen > verwendest: Das ist ja erstmal kein Problem > Noch schlimmer sind Dateien mit Pfadangaben: > > JsBarDia-Dateien/JsBarDia.js Moment, das hat der Internet Explorer aber beim Speichern der Seite verbrochen! > Da müsste man einen Pfad Parser einbauen. > Das ist einfach Unsinn auf einem uC. > Ein uC ist kein PC mit jeder Menge RAM. Pfad Parser? > Nimm kurze 8.3 DOS Dateinamen, dann kann > man den Webserver mit einem einfachen kleinen > FAT Dateisystem betreiben. Ok, an ein FAT16 Dateisystem habe ich garnicht gedacht. Ich dachte eigentlich eher daran, die Javascript Datei fest in den ProgMem des AVRs zu legen (3kb wird man ja wohl über haben) und bei Nachfrage an den Webserver nach dieser Datei kann man diese ja einfach herausstreamen. Wenn du eh ein Dateisystem hast, kannst du auch das "riesige" Diagrammscript von Andreas Schwarz oben nehmen.
Gast
#714593
>> Noch schlimmer sind Dateien mit Pfadangaben: >> JsBarDia-Dateien/JsBarDia.js >Moment, das hat der Internet Explorer aber beim Speichern der Seite >verbrochen! Sicher hat er das ;) Als PC User denkt man ja auch kaum über die Gegebenheiten auf einem uC nach. >> Da müsste man einen Pfad Parser einbauen. >> Das ist einfach Unsinn auf einem uC. >> Ein uC ist kein PC mit jeder Menge RAM. >Pfad Parser? >JsBarDia-Dateien/JsBarDia.js JsBarDia.js liegt im Verzeichnis JsBarDia-Dateien Da müsste das Programm erstmal reingehen. Wenn es das kann ! Na gut, ich könnte, aber vorher müsste man den Dateinamen den der Browser als JsBarDia-Dateien/JsBarDia.js liefert in seine Eintzelteile zerlegen. JsBarDia-Dateien und JsBarDia.js. Wobei JsBarDia-Dateien wieder ein langer Verzeichnisname ist. >Wenn du eh ein Dateisystem hast, kannst du auch das "riesige" >Diagrammscript von Andreas Schwarz oben nehmen. Such ich mal, und probier es aus :)
Gast
#714608
>>Wenn du eh ein Dateisystem hast, kannst du auch das "riesige" >>Diagrammscript von Andreas Schwarz oben nehmen. >Such ich mal, und probier es aus :) Runtergeladen, und mal reingesehen. Das war wohl ein Scherz von Andreas. Aufm ATMega, ich glaub nicht das das geht :(
holger wrote: >>> Da müsste man einen Pfad Parser einbauen. >>> Das ist einfach Unsinn auf einem uC. >>> Ein uC ist kein PC mit jeder Menge RAM. > >>Pfad Parser? > >>JsBarDia-Dateien/JsBarDia.js > > JsBarDia.js liegt im Verzeichnis JsBarDia-Dateien Eben. Das braucht es aber nicht. Du kannst die .js Datei (so wie ich) in den gleichen Ordner wie die html Datei legen. Alternativ kannst du die .js Datei auch (wie schon gesagt) in den ROM schreiben. (Sogar mit gz. Komprimierung, wie Andreas vorschlug) Wenn dann ein einfaches "HTTP/1.1 GET /JsBarDia.js" vom Browser kommt, kannst du direkt das Script streamen. > Da müsste das Programm erstmal reingehen. Wenn es das kann ! > Na gut, ich könnte, aber vorher müsste man den Dateinamen > den der Browser als JsBarDia-Dateien/JsBarDia.js > liefert in seine Eintzelteile zerlegen. JsBarDia-Dateien und > JsBarDia.js. Wobei JsBarDia-Dateien wieder ein langer Verzeichnisname > ist. Siehe oben. Nur weil dein Internet Explorer beim herunterladen alles verzeichnistechnisch umsortiert, musst du noch lange nichts ;) >>Wenn du eh ein Dateisystem hast, kannst du auch das "riesige" >>Diagrammscript von Andreas Schwarz oben nehmen. > > Such ich mal, und probier es aus :)
holger wrote: > Runtergeladen, und mal reingesehen. > Das war wohl ein Scherz von Andreas. > Aufm ATMega, ich glaub nicht das das geht :( Ich hab nicht großartig reingeschaut, aber warum sollte es nicht gehen? Ist doch bloß eine Javascript-Sammlung. Das wird vom Server einfach nur zum Client gestreamt, welcher dann den Javascript-Code im Browser ausführt.
Gast
#715313
Hi Ulrich,
ich hab da ne unschöne Stelle in stack.c gefunden:
//Packeteintrag im TCP Stack finden!
index = tcp_entry_search (ip->IP_Srcaddr,tcp->TCP_SrcPort);
if (index >= MAX_TCP_ENTRY) //Eintrag gefunden wenn ungleich
{
// Auweia. Hier wird index für tcp_entry[index] benutzt
// obwohl der Wert so groß ist das er ausserhalb des
// Arrays struct tcp_table tcp_entry[MAX_TCP_ENTRY];
// liegt. Ab hier ist index mindestens MAX_TCP_ENTRY.
// Um index hier benutzen zu können müsste man so deklarieren:
// struct tcp_table tcp_entry[MAX_TCP_ENTRY+1];
DEBUG("TCP Eintrag nicht gefunden\r\n");
tcp_entry_add (eth_buffer);
if(tcp->TCP_HdrFlags & FIN_FLAG || tcp->TCP_HdrFlags & RST_FLAG)
{
result32 = LBBL_ENDIAN_LONG(tcp_entry[index].seq_counter) + 1;
tcp_entry[index].seq_counter = LBBL_ENDIAN_LONG(result32);
if (tcp_entry[index].status & FIN_FLAG)
{
tcp_entry[index].status = ACK_FLAG;
create_new_tcp_packet(0,index);
}
tcp_index_del(index);
DEBUG("TCP-Stack Eintrag gelöscht! STACK:%i\r\n",index);
return;
}
return;
}
Dann hab ich den Webserver heute mal im Firmennetz
angeschlossen. Zuhause läuft er perfekt, aber in der Firma
geht es nur stockend und scheinbar gehen Pakete verloren.
Die Seite wird nicht immer vollständig geladen, der Browser
hängt und wartet auf Daten. Die Sockets sind aber alle bereits leer.
Laut Debug Ausgaben wird häufig neu gesendet.
Weiss der Teufel woran das liegt. Jetzt im Moment, zuhause,
läuft alles wieder perfekt.
Gruß
holger
Gast
#715319
@ Simon K. >Siehe oben. Nur weil dein Internet Explorer beim herunterladen alles >verzeichnistechnisch umsortiert, musst du noch lange nichts ;) Mein IE sortiert nix um. Der ist bei mir arbeitslos ;) Ich benutze Firefox. >Ich hab nicht großartig reingeschaut, aber warum sollte es nicht gehen? >Ist doch bloß eine Javascript-Sammlung. Das wird vom Server einfach nur >zum Client gestreamt, welcher dann den Javascript-Code im Browser >ausführt. Stimmt, aber diese Sammlung funktioniert auf dem PC schon nicht. Da muss noch irgendein Mochi.... dazu. Das dürfte recht aufwändig werden.
holger wrote: > @ Simon K. > >>Siehe oben. Nur weil dein Internet Explorer beim herunterladen alles >>verzeichnistechnisch umsortiert, musst du noch lange nichts ;) > > Mein IE sortiert nix um. Der ist bei mir arbeitslos ;) > Ich benutze Firefox. Achso, ich kannte das speziell vom Internet-Explorer. Aber ich glaube der Firefox macht das auch so. (Hab die Funktion nie benutzt). Auf meinem Webspace liegt aber alles in einem Ordner. >>Ich hab nicht großartig reingeschaut, aber warum sollte es nicht gehen? >>Ist doch bloß eine Javascript-Sammlung. Das wird vom Server einfach nur >>zum Client gestreamt, welcher dann den Javascript-Code im Browser >>ausführt. > > Stimmt, aber diese Sammlung funktioniert auf dem PC schon nicht. > Da muss noch irgendein Mochi.... dazu. Das dürfte recht aufwändig > werden. Ja, das ist wohl eine Art Bibliothek. Die sollte es auch auf der Seite geben, aber Garantie kann ich dafür nicht geben.
Hallo Holger, Ich habe den TCP Stack geändert. Das wollte ich auch geändert haben wo ich es mal programmiert hatte. Dieser letzte Eintrag am ende der Tabelle wird nur kurzzeitig benötigt. Zum zurückweisen einer Verbindung bei vollem Stack. Gruß Ulrich
Hallo, erstmal Danke für dieses schöne Projekt. Ich habe den Kram mal zusammengelötet (auf Lochraster, wie meist bei mir...), spielte auf Anhieb. 2 Ungereimtheiten sind mir in der Schaltung aufgefallen: wenn schon Drossel für AVCC, dann die Spannung aber auch an der VCC-Seite zuführen, sonst nutzt das Filter dem ADC auch nicht so richtig viel. ;-) Z.Diode als Überspannungsschutz ist eine gute Idee, eine flnke Sicherung davor wäre dann allerdings ganz angebracht. So muß man sich darauf verlassen, daß das Netzteil die Strombegrenzung erledigt und auch durchhält. Wäre mir zu riskant. Gruß aus Berlin Michael
Das mit den AVCC ist richtig! Gut wenn sich mehrere Personen ein Schaltbild anschauen. Aber die Funktion des Webservers wird dadurch nicht beeinflusst. Die meisten lassen die Spule sogar raus und löten eine Brücke ein. Gut mit der Sicherung war ich auch schon am überlegen, man sollte mit allem rechnen. Somit gibt es das Eaglefile und andere Layoutdaten korrigiert und wie immer kostenlos auf meiner HP zum Downloaden. Gruß Ulrich
Gast
#715506
Hallo Ulrich, erstmal: Respekt! Das Teil ist echt klasse. Hatte Anfangs auf unserer etwas groben Ätzanlage Probleme mit dem Isolate deiner EAGLE-Files. kann auch am Drucker gelegen haben ;). Ich würde wegen Lötbarkeit und Sicherheit gegen Whisker zu einem Isolate von 0.8 raten.
Hallo, Danke wird beim nächsten Release gemacht! Gruß Ulrich
Hallo, Natürlich kann man auch ohne Probleme eine Sicherung im alten Board verbauen. Einfach eine 0,5A Picofuse (von Reichelt) in reihe mit der Verpolungsschutzdiode schalten. Gruß Ulrich
Gast
#715967
Hallo, bei der Diskussion mit einem Kollegen ist die Frage aufgekommen, ob es möglich ist, einen Webservice zu installieren. Anscheinend werden diese XML-basierten Services zwischen Anwendungen verwendet um Daten auszutauschen. Sinnvoll erscheint es mir, wenn ich den Miniwebserver nicht zur Anzeige verwende, sondern im Netz einen/mehrere Sensoren habe, die über einen zentralen PC mit richtigem Webserver und entsprechenden Möglichkeiten Daten austauschen müssen. Kann jemand von euch abschätzen, ob es möglich ist, Webservices zu entwickeln und damit bspw. Sensordaten über XML zu versenden. Der Vorteil ist, wenn man einen Javaserver o.ä. verwendet kann man Services wohl sehr einfach einbinden. Gruß Steffen.
Gast
#716045
Hallo Ulrich, habe auf Deiner Web-Seite beim "Ethernet ATmega32/644 Experimentierboard" das im Bild angeschlossene Display gesehen. Laut Sourcecode wird es seriell angesteuert. Gibt es das Display fertig zu kaufen? Oder wo gibt es weitere Informationen hierzu? Gruß Martin
@Martin Beitrag "Re: Webserver ATmega32/644DIP ENC28J60" Gruss, Micha
Gast
#716277
Hallo Leute, hab irgendwie immernoch nicht gerafft, wie der "Senden"-Button aus der webpage.h in den restlichen Code eingebunden ist. den im Html festgelegten wert "submit" find ich sonst nirgends. Hat es was mit dem "firstswitch" zutun? wenn ja, wie? Würde gerne nen Reset-Button ins Webfrontend machen, damit ich den Server auch von extern reseten kann Grüße Henning
Gast
#716527
So wie ich das verstanden habe, ist der Button ja ein Standardkonstukt und hat also solches ein bestimmtes Verhalten. Nachdem du darauf klickst, sendet der Browser eine Anfrage an den Server. Je nachdem ob GET oder POST (bei Formular) verwendet wird, steht in der Adresszeile auch der Wert jedes Formularelementes (auch des Buttons). Der Server kann nun die neue Anfrage auswerten. Ich hoffe, ich habe jetzt nicht zu viel falsches geschrieben. Steffen.
Gast
#717155
Hallo *, ein bisschen OffTopic, da es hier hauptsächlich um den WebServer geht, aber vielleicht etwas was der ein oder andere gebrauchen kann. Beitrag "uip für AVR/ENC" Gruß Sebastian
Hallo, Hier die Version 1.0.34! Hier zeige ich wie einfach es ist eigene Applikationen zu schreiben. Hinzu gekommen ist eine Applikation die UDP Daten empfängt und auf dem Display darstellt. Gruß Ulrich
Hallo, binn immernoch ASm-Freak, eigentlich keine Ahnung von C, deshalb eine Frage:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
fehlt da nicht beim Verknüpfen mit MIRDH in data ein links-Shift um 8 Bit? Gruß aus Berlin Michael
Hallo, das würde ich jetzt auch sagen, habe mir gerade mal das angeschaut und getestet. Auch wenn diese Funktion zur Zeit nicht von mir benutzt wird, werde ich es mal ändern. Ich dachte schon ich mache nur Fehler ;-) Gruß Ulrich
Gast
#718223
Hallo, der praktischen Anwendung wegen gibt's hier auch ein bisschen Wetter vom AVR-Webserver - zumindest wenn mein Router an ist. http://sw-penig.dyndns.org:8080/wetter.htm Gruß Sascha
Gast
#718609
geeeenial :-) Wenn ich irgendwann mal so weit bin, soll meiner auch sowas können. Bei mir hapert es aber noch gewaltig an JavaScript. Ein Tipp/Anmerkung: Meist sind in Diagrammen die aktuellen Werte immer rechts. Vielleicht kannst du die Schleife (?) in der du deine Messwerte sendest einfach anderes herum abarbeiten. Steffen
sascha wrote: > Hallo, > > der praktischen Anwendung wegen gibt's hier auch ein bisschen Wetter vom > AVR-Webserver - zumindest wenn mein Router an ist. > > http://sw-penig.dyndns.org:8080/wetter.htm > > Gruß > Sascha Das Javascript gibt übrigens Fehler beim Bewegen der Maus. Firefox+Firebug AddOn lässt grüßen!
Gast
#719305
Hallo, leider läuft mein Websrver nicht :-) Wenn ich das LAN-Kabel reinstecke, leuchtet LED2 permanent. Gebe ich die IP in den Browser ein, blinkt LED3 kurz auf. Der Router findet den Server leider auch nicht. Muß ich evtl. noch etwas am Router konfigurieren oder etwas in der config.h ändern (habe die Schaltung Ver 1.1 von Uli exakt nachgebaut)? Bernd
Gast
#719315
IP-Adresse im richtigen Subnetz eingestellt? Was sagen die Debug-Ausgaben an der seriellen Schnittstelle? Zum hundertsten mal kontrolliert, ob alles richtig zusammengelötet wurde? Steffen.
Hi, >IP-Adresse im richtigen Subnetz eingestellt? Ja >Was sagen die Debug-Ausgaben an der seriellen Schnittstelle? Habe leider kein serielles Kabel .... Versuche mir mal eins zu besorgen. Bernd
Hallo, Wenn LED2 Leuchtet steht die Verbindung vom Router zum Webserver (RX)! Du sagst die Led am Router leuchtet nicht? Somit hast du vom Webserver aus gesehen ein TX Problem. Quarz OK! Tranciever OK? Gruß Ulrich
Hallo Uli, >Wenn LED2 Leuchtet steht die Verbindung vom Router zum Webserver (RX)! Genau, LED2 leuchtet, solange das Kabel drin ist. LED3 blinkt kurz auf wenn der Webserver empfängt. >Du sagst die Led am Router leuchtet nicht? Somit hast du vom Webserver >aus gesehen ein TX Problem. Doch, die LED im Netgear-Router leuchtet auch, zeigt mit gelb sogar korrekt eine 10Mbit-Verbindung an. >Quarz OK! Denke schon. Muß ich die Frequenz in der config.h eintragen? >Tranciever OK? Was meinst Du mit Tranceiver? Den Übertrager? Bernd
Hallo, also gehe ich jetzt erstmal davon aus das die Verbindung OK ist! Betreibe mal den ENC ohne Prozessor schau dir dabei das Blinken von LED3 an. Danach stecke den Prozessor wieder in das Board, schau dir nun nochmal das Blinken von LED3 an. Hier sollte nun auffallen, das die Led immer etwas länger mit Prozessor blinkt, wenn nicht stimmt was mit der Kommunikation zwischen Prozessor und ENC nicht. Gruß Ulrich
Gast
#719392
Hallo Uli, ich merke ohne den Atmel leider keinen Unterschied. LED2 leuchtet permanent, LED3 blitzt einige male (mit ein paar Sekunden Abstand) kurz auf, sobal ich im Browser die IP eingebe und auf Return drücke. Bernd
Hallo, hast Du mein Layout benutzt? Sind die FuseBits des Prozessor richtig eingestellt. Ich gehe mal davon aus das das Programm entweder nicht richtig läuft, oder ein problem mit dem SPI Bus hast.
Ja, ist Dein Layout in der neuen Version. Fusebits sollte WINAVR völlig alleine setzen, oder habe ich das falsch verstanden? Bernd
Wenn über WinAVR programmiert wird werden die FuseBits richtig gesetzt! Jetzt wäre eine Terminalmeldung nicht schlecht :-) Gruß Ulrich
Hast du die Platine nur einseitig geätzt?
Hi Uli! Sorry - mein Fehler... aber jetzt läufts! Zum einen hatte ich eine winzige Leiterbahnunterbrechung, die ich erst unter der Lupe bzw. mit dem Multimeter gefunden habe. Und dann wußte ich nicht, daß ich im WINAVR vor dem 'Make all' noch ein 'Make clean' zu machen habe. Jetzt klappts! Trotzdem vielen Dank für Eure schnelle Hilfe. Bernd
Gast
#719454
Geniales Projekt - auf dem Weg zum tieferen Verständnis leuchten bei mir allerdings schonmal ein paar Fragezeichen auf: - Welche MAC nimmt man eigentlich? Die sollte doch weltweit unique sein?! - WLAN - Accesspoint (oder was sinngemäßes?) anschließbar (und natürlich nutzbar;-) ? Gruß Frank
Gast
#719817
Nachtrag: Über LED_B (gegen Vcc oder GND geschaltet) bestimmt man, ob der ENC in Halb- o. Voll-Duplex Modus initialisiert. Da ich hier im Thread beide Schaltungsvarianten gesehen habe, die Frage: - Welche Variante nehmen? - Wann ist Voll- , wann Halbduplexbetrieb üblich? Fragender Gruß Frank
Gast
#720207
Hallo Frank, die MAC Adressen sollten weltweit unique sein, spielt aber keine Rolle welche Du nimmst, solange sie nicht schon in deinem LAN Segment auftaucht. Über dem LAN Segment hinaus, spielt die MAC Adresse keine Rolle mehr (wird auch nicht über Router weitergegeben). Du hast also die freihe wahl aus 2^48 MAC Adressen minus denen die Du schon in Benutzung hast (und denen die etwas spezieller sind wie z.B. broad-cast ff-ff-ff-ff-ff-ff-ff oder multi-cast - würde ich auch nicht nehmen - s. Wikipedia ...) Anders sieht die Sache aus, wenn du ENC Implementierungen (im großen Stil) verkaufen willst. Dann wirst du vermutlich nicht darum herrumkommen die MAC Adressen zu kaufen (nein, du kannst natürlich auch weiterhin random MAC Adresse verwenden, nur Kunden wären garnicht begeistert wenn du nun zufällig eine MAC Adresse erwischen würdest die bei ihnen im LAN vorhanden ist - erst recht nicht, wenn's die MAC Adresse des default router ist :-) also auf alle fälle die Vendorcodes der gängingen Router Hersteller meiden :-) ) WLAN - also den ENC an einen AP anschließen und dann via WLAN darauf zugreifen - geht. Vollduplex ist immer dann zu nehmen wenn es geht... Wenn Du nicht gerade uralt Hardware hast (Switche / Hubs etc.) sollten die FullDuplex können. Gruß Sebastian
Gast
#720208
P.S. man stellt Half/Full Duplex darüber ein, wie die LED angeschlossen ist???? Das kann ich nun garnicht glauben, aber kann natürlich sein, dass das so programmiert ist. Gruß Sebastian
Hi! Datenblatt, Seite 10 http://shop.tuxgraphics.org/snippets/enc28j60-version2006.pdf?id=1fb4a0 Gruss, Micha
Gast
#720334
was ich bis heut nicht verstehe; "wie kann man nur bei tuxgraphics" nachsehen?!?!? die projekte sind teilwese interessant, aber ansonsten happert es an allen ecken und kannten - er persönlich ist zudem unfreundliche und bei weitem nicht kompetent.
Nur der Startwert des Duplex-Modus wird durch die LED festgelegt. Der Modus lässt sich aber während der Initialisierung des Chips verändern. PS: Ulrich: Du schreibst, dass die Fuse-Bits automatisch(?) gesetzt werden mit WinAVR(?) Wie hast du das gemacht?
Gast
#720378
Danke für die Antworten! Eine aber noch hinterher: Wie erkennt man denn, ob man auf halb-Duplex zurückfallen muß? Gruß Frank
Hallo, Die FuseBits werde im makefile gesetzt.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
Gruß Ulrich
Achsoo, das funktioniert aber auch nur mit avrdude dann. Nichtoder?
Hallo, So ist es nur mit avrdude!! Gruß Ulrich
Hallo... kann mir einer sagen bitte wie die Fuses gesetzt bei PonnyProg werden müssen. Danke, Markus
Hallo, Im Anhang die FuseBits für einen Mega32. Einen Mega644 habe ich unter PonyProg noch nicht zum rennen bekommen. Gruß Ulrich
Hallo.. hab die so eingestellt, und jetzt kann ich nit mehr drauf zu greifen. Mega32 lg, markus
So habe mal das STK wieder benutz un konnte nun den AVR beschreiben. Über Hyperterminal sehe ich auch wenn ich web Web drauf zugreife. Aber wenn ich im Terminal zb. Ver eingebe passiert nix. Sehe auch nicht das ich es schreibe. Was kan da falsch sein ? lg, markus
Ulrich Radig wrote: > Hallo, > > Im Anhang die FuseBits für einen Mega32. > Einen Mega644 habe ich unter PonyProg noch nicht zum rennen bekommen. > > Gruß > Ulrich Das mit dem MEGA644 im neuen PonyProg ist etwas komisch. Der sagt zwar immer Hardware nich gefunden doch wenn man auf ignorieren geht tut ers trotzdem.
Guten Morgen, So jetzt geht es per Terminal. Habe den MAX232 rausgenommen und über RS232 Spare vom STK500 gegangen. Dann noch etwas, der Taster, laut Schaltplan ist der ja für Reset. Das Board funktionier nur dann wenn ich den gedrückt halte, (es ist nen schließer). lg, markus
Gast
#721470
Hallo ne Frage an die "Board"-bauer. An dem Übertrager bzw. am Connector sin 1nF 1KV Kondensatoren. 1nF ist ja kein Problem aber 1 bzw 2 KV. Wo bekommt man die her? Bei Reichelt habe ich keine gefunden. Von einem alten Board ist klar....so man hat. MfG Achim
Guten abend.. Ich habe hier noch ein 16x1 Display liegen. Wie wird es angeschlossen ? Habe so im Quelltext die Zuordnung der Pins nicht gefunden. Danke, Markus
Gast
#721998
@Robin Tönniges Hast Du bei Ponyprog mit dem Atmega 644 die Fuses genau so gesetzt, wie Uli es oben auf seinem Bild für den Atmega32 gemacht hat? MfG Paul
Ich habe nicht gesagt das ich den Webserver nachgebaut habe (obwohl ich die Platine hier schon länger liegen habe). Ich habe lediglich gesagt dass ich einen ATmega644 mit Ponyprog erfolgreich gefust und programmiert habe.
Gast
#722014
Ach so! Ich habe den nämlich schon mit Mega32 in Betrieb und wollte jetzt den Mega644 draufstecken. Da wäre es schön, die Fuse-Einstellungen nochmal im "Klartext" statt im Quelltext zu haben. MfG Paul
Irgendwie bekomme ich es nicht hin, nutzte das STK500 mit dem 10poligem Kabel was mit ISP aufm Webserver verbunden ist. Bekomme aber keine Verbindung zum AVR. Es ist ziemlich umständlich immer den AVR rauszunehmen und ins STK zu stecken. Wo könnte da der Fehler liegen ? Danke, Markus
Markus C. wrote: > Guten abend.. > > Ich habe hier noch ein 16x1 Display liegen. > Wie wird es angeschlossen ? Habe so im Quelltext die Zuordnung der Pins > nicht gefunden. > > Danke, Markus Findest du ein bißchen weiter oben in diesem Thread und zwar hier: Beitrag "Re: Webserver ATmega32/644DIP ENC28J60" > Irgendwie bekomme ich es nicht hin, nutzte das STK500 mit dem 10poligem > Kabel was mit ISP aufm Webserver verbunden ist. > Bekomme aber keine Verbindung zum AVR. Es ist ziemlich umständlich immer > den AVR rauszunehmen und ins STK zu stecken. > > Wo könnte da der Fehler liegen ? - Quarzprobleme? Welchen verwendest du? Mal auf Kurzschlüsse und auf die richtigen Kondensatoren testen. - Oder die Fuses passen nicht. - Kontrolliere deine Platine noch einmal. Besonders um den ISP-Anschluss und dem Quarz. Programmiere mal ein Blinklicht, spiel das auf dem Atmega auf und schau ob der Pin, den du programmiert hast, toggelt. Gruß Gerd
Hallo Gerd, das Board funktioniert ja wunderbar. Nur das flaschen geht per ISP nit. lg, markus
Gast
#722078
>Ich habe hier noch ein 16x1 Display liegen. >Wie wird es angeschlossen ? Habe so im Quelltext die Zuordnung der Pins >nicht gefunden. Die Schaltung zum Display findest du auf der Seite von Ulrich.
Welche Version verwendest du? Die Eagle-Dateien, die Ulrich anbietet? Ich verwende noch die erste Version, die kleine Fehler enthielt, aber der ISP funktionierte einwandfrei.
Nutzte die Version 1.1 lg, markus
> Dann noch etwas, der Taster, laut Schaltplan ist der ja für Reset. Das > Board funktionier nur dann wenn ich den gedrückt halte, (es ist nen > schließer). Das es ein Schließer sein soll ist korrekt. Geht das jetzt wenigstens richtig? Ohne das du den Taster drücken musst? Wenn der Reset nicht richtig beschaltet ist, dann funktioniert der ISP auch nicht. Gib mal genau an, was klappt und was nicht.
Hallo, ich würde den Webserver gerne in regelmäßigen Abständen mit dem NTP-Zeitserver synchronisieren. Wenn ich das richtig sehe, wird das in der aktuellen Version nur einmal bei Programmstart gemacht. Habe schon versucht, ein zusätzliches ntp_request einzubauen, aber das funktioniert irgendwie nicht... Bernd
Gast
#722589
Hi zusammen. Vielleicht kann mir jemand auf die Sprünge helfen, habe grade ein Brett vor dem Kopf! Ich muss vorausschicken, dass ich HTML und JAVA nicht grade beherrsche. Ich habe Ulrichs Webserver begeistert in Betrieb genommen, nun möchte ich Messwerte (Variablen des AVR) in die Webseite einbetten. Dass es mit JAVA-Script gemacht werden muss weiß ich mittlerweiile, auch wie diese eingebettet werden, nur nicht, wie die Übergabe vom AVR zur JAVA-Varablen funktioniert. Wäre prima wenn mich jemand in die richtige Richtung schubsen könnte!
Gast
#722599
Ich frage nochmal an, ob mir jemand mal die Fuse-Einstellungen für den ATMEGA644 im Klartext posten kann. Dort gibt es nämlich Bodlevel 0, 1, 2 statt nur Boden und Bodlevel. Flashen konnte ich ihn mit Ponyprog, aber an die Fuses gehe ich so nicht gerne ran. MfG Paul
Gast
#722609
@ Paul: hast du das AVR-Studio installiert? Im Prog-Plugin (der schwarze Käfer) kannst du dir die Bedeutung der Fuses angucken (im Disconnectet-Modus). Das war übrigens für mich das ausschlaggebende Argument, nicht den Ponyprog zu benutzen. ;)
Gast
#722612
>Dass es mit JAVA-Script gemacht werden muss weiß ich mittlerweile
^^^^
:-) Dann weisst du aber was, was sonst nicht viele wissen ;-)
Ne, mal ernsthaft: Javascript ist eine Möglichkeit die Werte
anzuzeigen, und hier im Thread eigentlich nur erwähnt, um z.B. ein
Diagramm darzustellen. Für die einfache Anzeige eines (Mess-)Wertes geht
es auch einfacher.
Für diesen Miniwebserver wurde die Zeichenkette %VA@0x (x=0..9)
eingeführt. Wenn das Unterprogramm http_data_send(...) diese
Zeichenkette in der gerade gesendeten Webseite findet (definiert in
webpage.h) wird diese Zeichenkette durch den Wert aus der Variablen
var_array[x] ersetzt.
Was du dir also mal anschauen solltest:
1: Schreiben der aktuellen Werte auf die Variable var_array[x]
2: in webpage.h in der Variablen PROGMEM char page1 = [...] die Zeilen
mit %VA@0x anschauen
3: in der Routine http_data_send in httpd.c mal schauen, wie die Daten
in die Webseite eingebettet werden.
Vielleicht hilft dir das als Hinweis, dass du den Quelltext verstehst.
Steffen.
Gast
#722613
@ Steffen: danke dir, das war der nötige Schubs.;) Werde deine Tipps beherzigen!
Gast
#722617
@Thilo M. Nein, ich habe keinen Programmer, der zu AVR-Studio kompatibel ist. Mir geht es vor allem um die BODLEVEL-Fuses, denn der MC mitsamt der Schaltung funktioniert ja schon, nur Resettet der Kerl sich immer mal und das hängt offenbar mit den BODLEVEL-Einstellungen zusammen. Ich habe mir die Anleitung zum "Umzug" von Mega32 zu Mega644 bei Atmel geladen, kann aber leider kein Englisch. Ich will ihn aber nicht unbedingt "verfusen", weil ich sonst erst wieder einen Adapter für meinen HV-Programmer bauen müßte. MfG Paul
Gast
#722619
Einen Programmer brauchst du nicht, nur die Software. Habe dir mal einen Screenshot angehängt.
Gast
#722627
@Thilo Danke! Das war´s. Jetzt läuft er stabil. :-) MfG Paul
Moin, hat hier eigentlich schon wer die MCA25-Cam in den Code mit integriert??? Grüße Henning
Gast
#722678
@ Steffen: danke nochmal, läuft jetzt. Auch wenn der Regler noch nicht dranhängt. ;) http://hreg.dyndns.org/index.htm
Gast
#723034
@Ulrich Super Projekt! Könntest du auf deiner Seite noch eine History / Changelog zu den Änderungen bei zukünftige Versionen machen so kann man dann sehen das du bei einer neuen Version geändert hast. Und könntest du bitte auch die alten Versionen auf einer „Archiv“-Seite online stellen? mfg CC
Gast
#723119
Hallo, ich habe gerade in der neuesten Version 0.36 gesehen, dass versucht wird, einen Atmega128 in das Make-File zu intrigieren. Ich verwende seit langem einen Atmega128. Habe nie versucht den kleinsten Websever zu bauen, sondern den Größten. Ich verwende ein Fertigmodul siehe Bild, mit unglaublichen 20 Mhz(außerhalb der Spezi, aber stabil). Wenn ich RS232 verwende, schalte ich um auf 16 Mhz. Kann dank LIBC Pascal Stangl Grafikmodule, Kartenleser, DS1307, DS1621 und gigantisch viele Ports verwenden. Der optimierte Oszi des Atmega128 kann mit guten Quarzen tadellos bis 20MHz laufen. Dank der stabilen Software habe ich nun einen tadellos funktionierenden Webserver. Ich danke allen Beteiligten für die tolle Server-Software. mfg Gerhard.G
Gast
#723149
Hallo @Gerhard woher hast du das Fertigmodul bezogen und was kostet das? Auf den Seiten kommt bei mir nur teilweise was lesbares... Viele Grüße Achim
Gast
#723254
Servus Archim, hier die Adresse: Suche bei Ebay nach Atmega128, die Firma heißt http://myworld.ebay.de/micro-research Der Preis ca. 30 Euro. Da gibt es auch Bilder und die Schaltung. Habe bereits einige Boards gekauft, der Versand dauert (Hongkong), war aber immer zufrieden. Oder noch besser ... da der Dollar sehr niedrig ist: Atmega128-Board und ENC28J60-Bord http://www.futurlec.com/BasicControllers.shtml Gruß Gerhard
> Ich verwende noch die erste Version, die kleine Fehler enthielt
Was waren das für Fehler? Bis auf die zusätzliche Sicherung kann ich so
auf Anhieb keine Unterschiede zwischen Version 1.0 und 1.1 erkennen.
Hallo, Das war noch der Anschluss VCC und AVCC. Diese sind vertauscht gewesen! Hat aber mit der eigentlichen Funktion des Webservers nichts zu tun. Gruß Ulrich
Gast
#724189
Hallo, habe auch Ulrichs Webserver nachgebaut und mir ist beim Ansehen der Software und beim Ausprobieren etwas an der "icmp_reply()" Routine aufgefallen ( siehe Anhang). Nach diesen Anpassungen ist bei mir ( Linux/WinXp ) alles in Ordnung. Vielen Dank, Ulrich fuer dieses schoene Projekt. horst
Hallo, Soeben ist die Ver. 1_0_37 raus. Habe die Änderungen in ICMP übernommen und eine Änderung in check_packet bei ICMP gemacht. Gruß Ulrich
Gast
#724249
Hallo, so habe mir eine Platine erstellt und bestückt! Die Taktfrequenz und die ip_Adresse kann ich in der config.h anpassen. Aber wo kann ich den Prozessortype vorgeben? Finde im Quelltext zwar "if defined" aber nirgend wo "defined". Oder habe ich etwas wichtiges übersehen? Gruß Martin
Hallo, Der Prozessor wird im makefile vorgegeben!
1 | |
2 | |
3 | |
4 | |
Gast
#724338
Danke, für die Antwort Ulrich. Ich muss aber blöd nachfragen! Die Angabe im Makefile hat Einfluss auf "#if defined (_AVR_ATmega644_)" in der timer.c? Wo erfolgte die Umsetzung? Gruß Martin
Ganz einfach: Der Compiler bekommt beim Aufruf über make (make wiederum parst das Makefile) die Preprozessor-Defines (und somit auch den AVR-Typ) per Kommandozeilenparameter übergeben.
Hallo, Hier mal eine Bauteileliste mit den Bestellnummern von Reichelt. Gruß Ulrich
Gast
#725792
Hallo @Ulli vielen Dank für Deine Bauteileliste....noch ne blöde Frage... in manchen Schaltungen haben die C19/20 eine Spanungsangabe im KiloVolt Bereich die von Reichelt haben nur bis 100V. Kannst Du das kurz erklären? MfG Achim
Guten Morgen. Als erstes, ich habe mit C keine erfahrungen. g Möchte folgendes nutzen, auf UDP Port 6454 soll empfangen werden und die Anwendung abgearbeitet werden. stack.c
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
so, wie geht es nun weiter ? Stehe da gerade auf dem Schlauch etwas. Danke, Markus
Hallo, Status: Zur Zeit versuche ich eine Philips DC-3840 Kamera an den Webserver anzubinden. Ich hoffe doch das ich bald hier Ergebnisse dazu liefern kann. Diese Kamera benutzt den gleichen Chip wie die CAM_C328 und ist technisch gesehen fast identisch. Gruß Ulrich
Hallo Ulrich, wolltest Du nicht ursprünglich die MCA-25 implementieren? Wieso hast Du Dich umentschieden? Gibt es mit der MCA Probleme oder ist die Phillips einfach nur besser?? Grüße Henning
Hallo, Ich finde die Philips eigentlich besser (optisch schöner, kleiner usw.). Außerdem habe ich genug Philips Kameras hier herumliegen (somit auch schon in meinen Shop :-) . Da inzwischen die MCA auch schwierig zu beschaffen ist habe ich mich für ein anderes Modell entschieden. Anscheinend kennen die Verkäufer den bedarf dieser MCA25 Kameras, und nehmen auch schon entsprechende Preise. Gruß Ulrich
Okay.. Dann werd ich mir gleich erstmal eine aus Deinem Shop sichern, denn die Dinger gibts sonst im Netz irgendwie nicht (5 minuten google)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.






