Hallo,
nachdem ich das Webmodul nun schon seit einiger Zeit am laufen habe, stelle ich hier mal das was ich so zusammengesucht und erweitert habe zur Verfügung.
Aktuell läuft bei mir ein Webmodul im Heizungskeller und ist fleissig Temperaturen am messen und auf SD-Karte loggen. Da ich den regelmässigen Weg in den Keller nicht als besonders erstrebenswert empfinde hier die Erweiterungen zur Version 1.0.77:
- SD-Kartenanbindung mit FAT-Dateisystem von Roland Riegel
- httpd liest Webseiten von SD-Karte
- Telnet CMD-Line Interpreter (habe ich auf Port 61234 gelegt, damit Port 23 noch auf USART geht)
- FTP Server
Den Code habe ich hier drangehängt. Ist mein komplettes Quellcode-Verzeichnis. Verwenden tue ich das AVR-Studio. Änderungen zu den Originalen muss man sich am Besten mit Windiff ansehen, da einige kleine Änderungen mitten in den Originalen zu machen waren. Der FAT16 Code von Roland Riegel musste nur in der Initialisierung angepast werden, aber ich habe noch einige (Highlevel-)Funktionen erstellt, die mir das Leben erleichtert haben (steht in sdcard.c) Bei Uli musste aber z.Bspl. ein Aufruf mitten in stack.c für den geschlossenen Socket rein. Naja, den Rest kann man sich ja mal in httpd.c und in den neu zugefügten Unterverzeichnissen ansehen.
Das Ganze funktioniert bei mir schon recht zuverlässig seit einigen Tagen, ist aber bestimmt noch nicht bugfree.
Dann zum Schluss noch eine kleine Hardwareerweiterung:
Der SD-Kartenslot aus Ulis Shop hat einen Schalter, der geschlossen ist wenn die Karte gesteckt ist. Leider ist der Schalter aber auf der Platine nicht verdratet. Abhilfe: einen der Anschlusspins vom Slot (befinden sich an der Ecke wo der Bestückungsaufdruck MMC1 ist) auf Masse festlöten und den anderen an PA6 mit einem kleinen Draht verbinden. So ist es jedenfalls bei meinem Board und daher auch im Quelltext. Wer das nicht hat muss im Quelltext von sd_raw.c Zeile 172 auskommentieren ( configure_pin_available(); ) und die Funktion sd_raw_available() (Zeile 249 bis 252) wie folgt abändern:
Code: Alles auswählen
uint8_t sd_raw_available()
{
return 1; // return get_pin_available() == 0x00;
}
Viel Spaß
wil
Ach ja, ich habe bei mir einen 644p draufgelötet, daher ist das Hexfile und die Einstellungen im AVR-Studio für einen 644p mit 14.7456 MHz.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.