Guten Abend, ich hexe seit einigen Tagen an meiner Schaltung mit 89S8252 und IIM7000A herum. Ich nutze die von Wiznet veröffentlichte API und das Board von MCS-Electronics (siehe http://www.mcselec.com/easy_tcp_ip.htm). Bei der Initialisierung des LAN Bausteins kann ich die IP Adresse pingen, jedoch hängt das Programm in der sysinit Funktion fest, der Wert des Registers C0_CR Bit0 ist immer 0. Somit geht es da nicht weiter am Ende der sysinit Funktion. Habe diese Abfrage mal herausgenommen damit es weitergeht. I_STATUS[0] = 0; COMMAND(0) = CSYS_INIT; while(!(I_STATUS[0] & SSYS_INIT_OK)); //Hier hängt es !! Ich initialisiere dann socket0 auf UDP Port 5000. Wenn ich UDPs schicke lösen diese auch den IRQ aus,jedoch sind die Zeiger für Anfang und Ende der empfangenen Daten immer gleich (Differenz=0). Wenn ich den Staus des socket0 abfrage ist der immer $0E was "socket initializing" bedeutet. Hat jemand auch solche Erfahrungen gemacht? Kann mir einer eine funktionierende sysinit Funktion in "Zeh" zur Verfügung stellen? Danke!!
hi , ändere mal die while schleife in: <code> while(!(I_STATUS[0]& SSYS_INIT_OK)){I_STATUS[0] = INT_STATUS(0); } </code>
Danke, der Beitrag ist aber schon fast ein Jahr alt. Problem war glaub ich der Unterschied zwischen BigEndian und LittleEndian. Keil (Wiznet) benutzen den einen, GCC den anderen. Meine Schaltung läuft inzwischen nach viel Schweiß und Tränen (DCF Uhr mit Time Server). Gruß Thomas
jo, das endian problem hatte ich auch schon. bei mir klappt mittlerweile alles, nur das sich der chip ab und zu verschluckt wenn er UDP daten senden soll und es zu kollisionen kommt weil ein 2. udp sender daten an ihn sendet.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.