Port_Fer ändern ADSP BF592

OP (Firma: tgm) #2960383
Lesenswert?
• ▲
▼
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
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.