Hi, Surfer ! Ohne sicher zu sein, daß das der Hänger-Grund ist, ist die Methode auf jeden Fall nicht sauber und du wirst irgendwann Zeichen verlieren.
Vergiß nicht, daß Interrupt und Normal völlig unsynchron ablaufen, d.h. sie hauen sich "Daten" gegenseitig nieder.
der interrupt fährt dir ja u.U. genau zwischen
if (daten == 'a')
und
daten = 0
rein, und dann ist dieses Zeichen schon mal weg.
Wie gesagt, weiß nicht, ob's der Grund ist, aber bäh ist es sicher.
mfg robert