Öhm ..
Code:
...  sendTime() .. printf("VVV%c%010ldEE\n", id, mslong);
... for (n=0;n<60000;n++);
... nb_getkey())=='V')
... while((c=_getkey())=='V');
... mslong = readTime();
... for (n=0;n<60000;n++);
... for (m=0;m<10;m++);
öhm, ganz vorsichtig gesagt, ich würde den Programmablauf etwas anders programmieren ... Du hast wohl nur eine Umlenkung von stdout gewählt, um
mit dem Außen zu sprechen, das gut für debugging, aber ... ... und dann loops, die nix machen .. das macht man anders .... so via timer und - ich bezeichne es als- "ping-pong"-Reaktionsabwicklung ... also step by step mit der Möglichkeit von timeouts etc. ...


PMR Fun 446MHz 500mW von Conrad. hmm .. nunja, dagegen spricht nicht viel, so was dachte ich mir schon ... hat den Nachteil, daß Du keine externen Antennen anschließen kannst ....

Ok. wenn die Module "direkt" arbeiten, dann is gut ... dann sollte das Ganze auch fix gehen ...

Denke wir sollten am WE mal Telefonieren ... XXl läßt grüßen


> Meine 3 Timer gehen für I2C und UART drauf.
> Ich arbeite mit C8051F300 von Cygnal.

Hmmm .. den 8051 kenne ich von vor 20 Jahren ... jetzt werkel ich mit dem mega128 rum ... 3 Timer für I2C und UART ????? Schulterzucken ..

Also ich löse eine Mehrfachnutzung des Timers so, daß ich jeweils ein Flag setze, wenn Timer ausgelöst wird und somit einen "Takt" vorgebe.
Sehr zeitkritische Sachen (.z.B. Schrittmotorsteuerung) laufen auch innerhalb der Zeitschleife ab ...

1200 Baud sind nun wirklich nicht sehr schnell .. das ist ein Nebenjob ... Daten raus .. Flag eins höher setzen und wenn Antwort kommt, dann Flag wieder eins höher ... switch/case mit entsprechenden "ping-pong"-Abwicklung ...

Aber Deinen 8051-Derivat kenn ich nicht, auch nicht dessen Möglichkeiten ... dasn Problem ...

LG
Vajk