Hallo,

ich kom einfach nicht mit dem Empfang klar.
Auch wenn es zwischendurch schon mal so aus sah, als wuerde es langsam in die richtige Richtung weitergehen, so kam das Ganze nun doch wieder zum erliegen.
Etwas, das eigentlich schon mal richtig funktuioniert hat, macht nun wieder Probleme:
Meine "receiveAndWait()"-Funktion soll eingentlich nur warten, ob eine Nachricht ankommt, und wenn ja, dann soll diese ausgegeben werden.
Theoretisch fäng eine Nachricht dann an, wie ich schon mal erwähnte, wenn DR1 vom nRF2401 gesetzt wird, bei mir auf PINB.6 (also 0x40 - fängt man bei null oder eins an zu zählen? Ich geh mal von null aus).

Bei mir im Code...

Code:
void receiveAndWait( void )
{
  char *_string;
  //char r;
  
  delay(2);
  PORTB |= 0x10;    //CE = 1
  delay(2);
  wait(250);
  delay(2);
  
  while ( !(PINB & 0x40) );
  
  //if ( PINB & 0x40 )
  //{
    //while ( r = getChar() ) cout<<r;
    //break;    
    _string = getString();
    //if ( _string != "" ) break;
  //}
  
  //cout<<MA_GetChar_SPI();
  
  cout<<_string;
  cout<<"\n";
  
  PORTB &= ~(0x10);   //CE = 0
  wait(250);
}
...aber, wird mysteriöserweise der Wert 1 gesetzt, sobald CE=1 gesetzt worden ist, also auf Emfang gestellt wurde - das sollte so nicht sein...

Ich versteh es nicht mehr!

Wenn jemand Rat wuesste.... Bitte!

BGMF