MSP430 SPI Bitveschiebung

Gast #2248190
Lesenswert?
• ▲
▼
Hallo Leute,

Ich nutze einen MSP430F2132 als Slave am SPI BUS. Master ist ein anderer 
IC. Clock ist 100 kHz. Wiederholungsrate 1ms.

Leider ist bei mir das Ergebnis immer um 1 bit verschoben. Also wenn ich 
als Slave was in den SPI Buffer schreibe kommt das ganze um 1 Bit 
verschoben wieder an. Am Master liegt es wohl nicht..

Hier mein Code

Initialisierung...
...
UCB0CTL0 |= (UCSYNC+UCMSB+UCMODE_2+UCCKPL+UCCKPH);//UCCKPL//UCCKPH
  while (!(IFG2 & UCB0TXIFG));
  UCB0CTL1 &= ~UCSWRST;
  IE2 |= (UCB0RXIE+UCB0TXIE);
  __enable_interrupt();
..

und die ISR:
 #pragma vector = USCIAB0TX_VECTOR
__interrupt void  USCI0TX_ISR (void)
{
  P1OUT ^= 0x04;
  UCB0TXBUF=0xfE;
}

Ich schreibe also immer 1111 1110 rein
als ergebnis im RXBUFFER bekomme ich 0111 1111

Hab alle 4 SPI Modi schon ausprobiert...

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.