Forum: Mikrocontroller und Digitale Elektronik Problem mit SPI Schnittstelle


von xolom (Gast)


Lesenswert?

Hallo.

Ich habe ein Problem mit meiner SPI Schnittstelle auf meinen Atmel 
xmega128a1

Wenn ich mein Projekt mit eingeschalteter Optimierung kompiliere, dann 
hänge ich in dieser Schleife fest:
1
while(!(SPIC->STATUS & SPI_IF_bm));

Mit ausgeschalteter Optimierung funktionierts. Aber warum?

von Claude M. (stoner)


Lesenswert?

Mal unabhängig von der Optimierung: Hast du SS auf Ausgang geschaltet?

von sirup (Gast)


Lesenswert?

Der Fehler liegt in Programmzeile 42.

http://www.mikrocontroller.net/articles/Netiquette

von xolom (Gast)


Lesenswert?

Ok die Initialisierung wäre noch wichtig gewesen
1
SPIC.PIN4CTRL = PORT_OPC_WIREDANDPULL_gc;
2
SPIC.DIRSET   = SPI_SCK_bm | SPI_MOSI_bm;
3
SPIC.CTRL     = SPI_MODE_0_gc | SPI_PRESCALER_DIV16_gc | (1<<SPI_ENABLE_bp) | (1<<SPI_MASTER_bp); 
4
SPIC.INTCTRL  = SPI_INTLVL_OFF_gc;

von xolom (Gast)


Lesenswert?

Danke. SS als Ausgang schalten löste das Problem.
Die Frage ist nur, warum es ohne Optimierung funktionierte?

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.