Forum: Compiler & IDEs Merkwürdiges SPI Problem


von Kunki_86 (Gast)


Lesenswert?

Hallo miteinander,

habe ein merkwürdiges SPI Problem. Ich schalte während dem Betrieb von 
Slave auf Master um, jedoch kann ich den SS Pin nicht auf "1" setzen. 
Ich muss in auf "1" setzen, damit ich im Master-Mode bin. Der Pin geht 
aber nur kurz auf High und anschließend sofort wieder auf Low (Digi. 
Oszi gemessen).
Bevor ich also senden kann springt der MCU wieder in den Slavebetrieb. 
Woran kann das liegen? Mache ich etwas am Init falsch (Init- 
Reihenfolge)?
Mein MISO Pin wird nicht benutzt. Ist eine reines Master-Master-SPI.
Bitte helft mir, es ist sehr wichtig.

Mein Init:

int spi_init_master()
{
  //MCU wird auf Master programmiert
  char dummy;

  SPCR = (1<<SPE);

  SPCR |= (1<<MSTR)|(1<<CPHA)|(1<<SPR1)|(1<<SPR0);
  SPSR = 0;

  PORTB &= ~((1 << SS1)|(1<<DD_SCK));

  // MOSI auf Output schalten, SCK auf Output

  PORTB |= (1<<DD_MOSI)|(1<<DD_SS);// SS auf High
  DDR_SPI |= (1<<DD_SS)|(1<<DD_MOSI)|(1<<DD_SCK);
  PORTB |= (1<<DD_SS);



  DDR_SPI &= ~(1 << DD_MISO); // Input deklarieren


  dummy = SPDR;
  dummy = SPSR;
  // Enable SPI, Master-Mode einstellen, Frequenz einstellen
  _delay_ms(10);

  //SPCR |= (1<<SPE);

  return (0);


}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.