Meine "Vom-SPI-Empfangs"-Funktion...
Die is doch bestimmt Gruetze, oder?
Kritiken und Anmerkungen ausdruecklich Erwuenscht!
Diese Funktion hab ich jetzt mal in zwei unterteilt:
Code:
char *getString( void )
{
  char *string;
  char singleChar;
  int i = 0;
  
  while( 1 )
  {
    singleChar = getChar();
    
    if ( singleChar == 0x00 )
      break;
    
    string[i] = singleChar;
    i++;    
  }
    
  cout<<string;
  return string;  
}

char getChar( void )
{ 
  char r;
  
  while ( MA_OK != MA_TestChar_SPI() );
  
  r = MA_GetChar_SPI();
  return r;
}
Es läuft jetzt bis zu der While-Schleife in der getChar-Fkt., doch aus dieser kommt er nie heraus!

Ich habe mal nachgeschaut und in der entsprechenden c-Datei fuer das ganze SPI-Zeug steht, das ich fuer die MA_GetChar_SPI-Fkt. halt die MA_TestChar_SPI-Fkt. nutzen soll, doch hängt er scheinbar immer in dieser sich an dem SPIF-Flag auf (im AVRStudio hab ich gesehen, dass dieses nie gesetzt wird)
Hier mal die TestChar-Fkt.:
Code:
S8 MA_TestChar_SPI( void ) 
/*
**---------------------------------------------------------------------------
**
**  Abstract:
**      Test if serial transfer is complete.
**
**  Parameters:
**      None
**
**  Returns:
**      MA_OK       Serial transfer is complete
**      MA_EMPTY    Serial transfer is not complete
**
**---------------------------------------------------------------------------
*/
{
    S8 Status;

    /*--- Handle user code on function entry ---*/
    ENTER_MA_TESTCHAR_SPI;

    if( SPSR & __BIT_MASK( SPIF ) )
    {
        /*--- Serial transfer is complete ---*/
        Status = MA_OK;
    }
    else
    {
        /*--- Serial transfer is not complete ---*/
        Status = MA_EMPTY;
    }

    /*--- Handle user code on function exit ---*/
    EXIT_MA_TESTCHAR_SPI;

    /*--- Thread safe return ---*/
    return Status;

} /* MA_TestChar_SPI */
Ich schau hier echt wien Schwein ins Uhrwerk, wenn ihr nen Tipp habt...

BITTE MELDEN!!!

BGMF[/b]