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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren