Hallo randolf,
> danke für Deine Antwort. Anbei findest Du den Quelltext. Geladen ist wirklich die neuere OS (18.09.2001). > Allerdings sind sowohl die Unit, als auch das Board aus der ersten Serie.
Bei der CC2 hat sich, soviel ich weiß, in den letzten Jahren im Hardwaredesign nichts geändert. Ich betreibe selbst alte und neue Units Ich konnte keinen Unterschied zw. diesen feststellen.
> Ich habe die Jumper JP7 (RTS) und JP8 (CTS) gezogen. Seitem kann ich mit dem PC wieder Daten empfangen.
Die Jumper dürfen nicht gezogen sein !! Das Senden funzt sonst nur sporadisch. Entweder müssen die Jumper gesetzt sein, dann muß auch auf der PC-seite das HW-Handshake aktiviert werden bzw. dafür gesorgt werden, daß RTS=True ist, oder, wenn die Jumper nicht gesetzt sein sollen, muß µC CTS mit GND verbunden sein !
> Es ist trotzdem nicht alles in Butter, da die CC2 im Hostmodus immer noch ein merkwürdiges Verhalten zeigt. > Auf die Kommandos (z.B. cmd_send_id) erhalte ich jetzt manchmal die richtige Antwort und manchmal nicht. > Es hilft meist den Hostmodus noch einmal einzuschalten (Reset + Host).
Beachte, daß sich durch einen Bug in der IDE die Unit nach dem Laden eines Programms auf 57.600Baud befindet ! Daher werden Kommandos die dann mit 19.200 Baud gesendet werden nicht bzw. falsch ausgewertet.
> Auch das Programm muss ich hin und wieder 2 mal starten, bevor es richtig anläuft > (lcd intern zeigt running, lcd extern zeigt nichts oder Unfug). Vielleicht sind das noch ein paar Anhaltspunkte?
Versuch' das OS nochmal zu Laden.
Ich hab' Dein Quellcode ein wenig optimiert. Jedoch Fehler, außer, daß bei Dir ein String übergelaufen ist, konte ich nicht finden:
//------------ thread main //------------ { int ad[6]; string s; byte d,i; long n;
hwcom.init(); hwcom.setspeed(hwcom.SPEED_19200); lcdext.init(); lcdext.print("Warte"); sleep 500;
n = 1; loop { if hwcom.rxd() { d = hwcom.get(); if d==40 { for i=0 ... 5 ad[i]=ports.adc(i); s = ""; str.putlong(s,n); lcdext.clear(); lcdext.goto(0,0); lcdext.print(s);
s = "AD0= "; str.putint(s, ad[0]); lcdext.goto(0,6); lcdext.print(s);
s = "AD3= "; str.putint(s, ad[3]); lcdext.goto(1,6); lcdext.print(s);
s = ""; // Ab hier lief die Strinvariable u.U. über // Deshalb wird öfters gesendet str.putlong(s,n); hwcom.print(s); for i= 0 ... 5 { hwcom.put(','); s = ""; str.putint( s,ad[i]); hwcom.print(s); } n = n + 1; } if d==13 { lcdext.clear(); lcdext.print("Hostmode"); quit 63; } } } }
MfG André H.
|