Forum: Mikrocontroller und Digitale Elektronik Mal wieder: SPI2X hat keinen Effekt


von Joachim S. (mithotyn)


Lesenswert?

Hallo zusammen!

Ich hab die Suchfunktion schon gequält, aber hab keine Lösung gefunden. 
Ich will bei einem ATTiny88 (mit int. Osz. 8 MHz) SPI mit fOsc/2 laufen 
lassen. Ergo versuche ich das Bit für SPI2X zu setzen.

Aber egal ob das Bit 0 oder 1 ist, mein Oszi zeigt am SCK-Port die selbe 
Ausgangsfrequenz an.

Warum geht das nicht?????

Danke und Gruß
Joachim

Hier die Init-Funktion
1
void spi_init(void) {
2
  // SCK, MOSI, SS als Ausgang
3
  DDRB |= (1<<PB5) | (1<<PB3) | (1<<PB2);
4
5
  // Als Master, SPI Enable (Mode 0, Clock hier fOsc/4)
6
  SPCR |= (1<<SPE) | (1<<MSTR);
7
8
  // Und bitte fOsc/2 --> Tut sich nix
9
  SPSR |= (1<<SPI2X);
10
11
  // Ein Dummy-Byte auf den Ausgang schreiben
12
  SPDR = 0xFF;
13
}

von holger (Gast)


Lesenswert?

>Aber egal ob das Bit 0 oder 1 ist, mein Oszi zeigt am SCK-Port die selbe
>Ausgangsfrequenz an.

>Warum geht das nicht?????

>  SPSR |= (1<<SPI2X);

Genau so macht man das.

Schon mal alles gespeichert, compiliert
und dann neu geflasht?

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.