ATmega16 UART + zobrazování výsledků v C# apce

Zdravím vytvořil jsem aplikaci stopky s mcu ATmega16 a k ní mám připojený převodník na USB. Do mcu jsem vložil funkci na posílání času do PC:

[code]void odesli_cas(void) //cas
{

    str_cas[10] = '\0';
    str_cas[9] = '\n';
    str_cas[8]      = str_mil_sec[2];
    str_cas[7]      = str_mil_sec[1];
    str_cas[6]      = str_mil_sec[0];

    str_cas[5] = ',';

    str_cas[4] = str_sec[1];
    str_cas[3] = str_sec[0];

    str_cas[2] = ':';

    str_cas[1] = str_min[1];
    str_cas[0] = str_min[0];

    uart_puts(str_cas); // pošli na COM

    return;

}[/code]
a posílaný čas chci zobrazovat v nějaké okenní aplikaci napsané třeba v c# a řeším způsob jak dostat pouze jeden řádek času, když posílám čas přes funkci výše a pak to zobrazuji v nějakém labelu tak se to vypisuje jako do řádku pod sebe, prostě potřebuju odfiltrovat ostatní řádky a mít tam jen ten jeden s aktuálním časem.

kód v c#:

[code]private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) // přijatá data
{
RxString = serialPort1.ReadExisting();

        //znak = serialPort1.Read(Char[11]);
        //znak = serialPort1.ReadExisting();

        this.Invoke(new EventHandler(DisplayText));

    }
    private void DisplayText(object sender, EventArgs e)
    {

        RXWINDOW.AppendText(RxString);
        //cas.Text=(RxString);

       /*znak = RxString.ToCharArray();
       vypis = znak.ToString();
       cas.Text=(vypis);
       */
    }[/code]

úplně mě nenapadá nějaké řešení jak dostat jen ten jeden řádek

Zkus dát str_cas[9] = ‘\r’; místo str_cas[9] = ‘\n’;. Mohlo by to pomoct.

A pokud ne, pak odřádkování v tom řetězci vynech úplně a řádkování si řeš v C# aplikaci sám.

Kromě toho, řešit nějaký předávání dat úplně bez zabezpečení alespoň kontrolním součtem je trochu hazard. V případě pouhého zobrazování to sice až tak velkej průšvih nebude. Prostě se zobrazí blbosti, ale pokud ty data pak něco dále řídí, tak musíš mít jistotu, že jsou data OK.