Hallo Warringer

Ne, der Code stammt von dir, hier Zeile 24:

while (einZeichen != 0x09)

Du vergleichst den Zeiger auf einZeichen[] (den SerRead() benötigt) mit der Endekennung deines Wortes 0x09. Richtig wäre

while (einZeichen[0] != 0x09)

Aber mit vorherigem Löschen von einZeichen[], sonst wird beim nächsten Wort das letzte 0x09 geprüft und die Schleife nie mehr betreten. Richtig gut (nach meiner Meinung) wäre:
Code:
uint8_t z1, z2;

   while(1)
   {
		z1=0;
		do
      {
         SerRead(einZeichen,1,0);       // warten bis ein Zeichen über IR kommt
         SerWrite(&einZeichen[0],1);    // Kontrollausgabe zum Terminal
         Zeichenkette[z1] = einZeichen[0];
         z1++;
      } while (einZeichen[0] != 0x09);   // solange Zeichen einlesen bis VT erkannt wird
      for (z2 = 0; z2 < z1; z2++)
      {
Ich weiß, man kann sich auch verkünsteln...

Noch 'ne Frage: Warum wird das Ende des Wortes mit 0X09 markiert? Das ist ein horizontaler Tab? Wäre cr ('\r') oder newline ('\n') nicht sinnvoller? Eben das, was die Enter-Taste sendet? Viele Wege führen eben auch hier zum Ziel.

Übrigens ist der Wikieintrag zum Morsealphabet auch lesenswert. Speziell das Kapitel über die Übertragungsrate (WPM) im Zusammenhang mit automatischem Senden der Zeichen.

Noch eine kleine Anmerkung zum Anschluß: An diesem Beitrag habe ich nun fast 40 Minuten gebastelt. Ich hoffe, er ist inhaltlich richtig und halbwegs verständlich formuliert. Das mache ich nicht immer so sorgfältig, aber speziell bei Newbee-Fragen versuche ich es. Und nun gebe ich den Ball wieder ab an Thraxas.

Gruß

mic