Forum: Mikrocontroller und Digitale Elektronik AVR / Codevision/Zeiger


von Matthias (Gast)


Lesenswert?

Hallo liebe MCN _Gemeinde

habe folgendes Problem:
Ich soll unter C für Codevision einen AVR ans Internet anbinden und
habe mir dafür den W3100A von Wiznet bestellt-
Initialisieren funktioniert und auch Passiv nen Socket zu erstellen .
Jetzt gehts aber ans senden und empfangen.

um nun Daten senden zu können
(in meinem fall erstmal nur eine kleine html Seite ("<html>\n
<body>\n        <H1>es funktioniert! </H1>\n    </body>\n</html>"))

muss ich das in einen Sendebuffer verschieben der bei mir auf der
Addresse 0xC000 bis 0xC7ff liegt .(für jeden Socket fest eingastellt
aber jetzt erstmal nur einen!)
Muss ich ja wohl irgendwie mit Strings und Zeigen machen oder ?
Wie mache ich das ? bin leider überhaupt nicht fit mit C und
Zeigerhandling .
wie mache ich das ? hab so garkeinen Ansatz .
erst variable mit String erzeugen(100Zeichen) und dann Zeiger auf die
erste Addresse  setzen ??


..wenn dies funktioniert bdann muss ich auch noch etwas aus einem
Empfangsbuffer lesen (wieder feste Anfangs Addresse) und wiederum
weiterverarbeiten (http parser);
Bitte Bitte Bitte helft mir es läuft gerade überhauptnicht .
freue mich über jegliche sinnvolle Antwort

vielen Dank im Voraus Matthias

von Ralph (Gast)


Lesenswert?

Hallo Matthias

Ich habe es mit einer ähnlichen Problemstellung zu tun wie Du,
zumindest was die Kombination W3100A, AVR und CodeVision-C angeht.

Bei mir ist es ein mega128/16MHz, und der W3100A befindet sich auf
einem IIM7010A Modul von WIZnet. Die Anbindung zwischen mega128
und W3100A ist über I2C realisiert (400kHz für SCL).

Kann es sein, dass mit dem W3100A auch im MemoryMapped-Mode netto
"nur" etwa 20-30kBytes/s erziehlt werden können? Den Wert habe ich
von jemanden, der den W3100A bereits mehrfach für industrielle Designs
eingesetzt hat. Steht schon im krassen Gegensatz zu den Angaben von
WIZnet (mega128@16MHz, 375kByte/s). Ist wohl brutto mit dem ganzen
Protokoll unter optimalsten Bedingungen zu verstehen.

Host-seitig (PC, Client) kommt bei mir MATLAB zum Einsatz.
Wahrscheinlich werde ich aufgrund des schmaleren Protokolles UDP/IP
benutzen. Weitere darüberliegende Schichten (http etc.) brauche ich
jedoch nicht.
UDP/IP und auch TCP/IP werden von MATLAB von Haus aus unterstützt,
alleine die Funktionsaufrufe (MATLAB ist ein Interpreter) sind etwa 8
mal schneller als diejenigen auf eine COM-Schnittstelle.

Leider war meine Suche nach Beispielen (Source, auch der
Firmware/Treiber für die AVR-Seite) bisher erfolglos, und ich gehe
davon aus, dies z.B. ab den Beispielen von WIZnet (8051-Implementation)
und der Doku selbst nach CodeVision-C portieren zu müssen.

Nun, ich bin erst am Anfang des Weges und somit für Dich (noch) keine
Hilfe. Aber ich werde ab und zu einen Blick auf diesen Thread werfen,
und falls sich bei mir Erfolge verzeichnen auch mal etwas posten.

Viel Erfolg soweit!

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