Ich versuche derzeit auf dem Blackfin eine SPI Schnittstelle zu realisieren. Es soll ein Master sein und mit den Einstellungen der Spi-Parameter habe ich auch keine Probleme allerdings mit den Pins. Inzwischen vermute ich das ich erst mit dem Port_Fer Register die entsprechenden Pins enablen muss. Das Problem daran ist nun, dass ich nicht weiß wie ich auf das Port_Fer Register zugreifen kann um es zu ändern. Ich verwende eine ursprünglich funktionierende SPI-Schnittstelle welche ich nur vereinfacht habe und welche offenbar auch intern funktioniert. Mein Programm derzeit: void SPI_Test(void) { //Test Selfmade unsigned char *test = malloc(8); memset(test, 0xAA, 8); //Setup //*pFIO_DIR |= PF0; *pFIO_DIR |= PF15; *pFIO_DIR |= PF14; *pFIO_DIR |= PF13; *pFIO_FLAG_C |= PF15; *pSPI_BAUD = 25; *pSPI_CTL = MSTR | TIMOD01 | SPE; //SPI Mode 0 *pSPI_FLG = FLS1 | FLG1; *pSPI_TDBR = 25; *pPORT_MUX = (~(PF0 | PF1 | PF2)); //Write_Status if (*pSPI_CTL & CPHA) { *pSPI_FLG &= ~FLG1; } else { *pFIO_FLAG_C = PF1; } for(dummy=0; dummy<100; dummy++); WaitForSPIF(); *pSPI_TDBR=WRSR; WaitForSPIF(); for(dummy=0; dummy<100; dummy++); tempchar = rbyte(); WaitForSPIF(); *pSPI_TDBR=0; WaitForSPIF(); for(dummy=0; dummy<100; dummy++); tempchar = rbyte(); WaitForSPIF(); *pSPI_TDBR=WRDI; WaitForSPIF(); for(dummy=0; dummy<100; dummy++); tempchar = rbyte(); for(dummy=0; dummy<100; dummy++); if (*pSPI_CTL & CPHA) { *pSPI_FLG |= FLG1; } else { *pFIO_FLAG_S = PF1; } //Disable_SPI(); *pSPI_CTL &= ~SPE; free(test); } Der dazugehörige Header im Anhang Es ist nun der Fall, dass die pointer auf alle Register mit ausnahme von Port_Fer funktionieren. Die möglichkeit direkt auf das Register würde auch noch offenstehen, aber ich nicht wie. Bitte um Hilfe lg Draugluin