D.h bei der Methode wird offenbar RX_M_DATA garnicht gesetzt, sonst müßte er nach jedem "U" ja irgendwas ausgeben.

Da müssen wir kontrollieren, ob die while routine überhaupt die Flanken erkennt
Code:
while(1) 
  { 
    if (bRxFlag & RX_M_RECEIVE) 
    { 
       if    ( ( PIND & (1<<PD2))  ^  (bOld & (1<<PD2)))  // any Flanke ? 
       { 
              	if (bCnt & 0x08) 
              	{ 
                  bRxFlag &= ~RX_M_RECEIVE; 
                  bRxFlag |= RX_M_DATA; 
              	} 
              	else 
              	{ 
                   bOld = PIND; 
                   bCnt++; 
                   bRxByte >>= 1; 
              	} 
        	if   ( PIND & (1<<PD2)) 
        	{ 
               		PORTD |=(1<<PD4); 
               		bRxByte |=0x80; 
        	} 
        	else 
        	{ 
              		PORTD &= ~(1<<PD4); 
               		bRxByte &= ~0x80; 
         	} 
        } 
    } 
    if  (bRxFlag & RX_M_DATA) 
    { 
        bRxFlag &= ~RX_M_DATA; 
        send_one_byte(bRxCount + 0x30); 
    } 
  }
(es ist nur ein "}" anders)


in diesem Falle dürft jetzt GARKEIN echo kommen