Forum: Mikrocontroller und Digitale Elektronik Problem mit SPI und Silabs


von Sebastian R. (Firma: Hager Electro GmbH & Co. KG) (seprim)


Angehängte Dateien:

Lesenswert?

Hey Community
Ich bin hier mit einem C8051F560 und einem MPU-9250 von Invensens am 
Arbeiten.
Ich will den Sensor über SPI auslesen habe aber das Problem dass mein 
SPI meine Adressdaten ncht annehmen will.
1
void init_sens(U16 spi_adress, U16 spi_data)
2
{
3
  U8 SFRPAGE_save = SFRPAGE;  
4
  SFRPAGE = ACTIVE_PAGE; 
5
  SPI0DAT = spi_adress;
6
  NSS_SENS = 0;
7
  while (SPIF == 0){};
8
  SPIF = 0;
9
  SPI0DAT = spi_data;
10
  while (SPIF == 0){};
11
  SPIF = 0;
12
  NSS_SENS = 1;
13
  SFRPAGE = SFRPAGE_save;
14
}
Das ist meine Initialisierungsroutine des Sensors.
Wenn ich das ausführe kommt im Watchfenster das an was im Bild ist.
Kann mir da wer helfen, ich weiß nicht mehr was ich da machen soll
LG Seb

von Jim M. (turboj)


Lesenswert?

Folgender Part:
1
  NSS_SENS = 0;
2
  while (SPIF == 0){};
3
  SPIF = 0;

dürfte sich aufhängen, da das NSS setzen kein Interrupt erzeugt und 
somit
SPIF immer Null bleibt.

Ich würde fürs Polling auch lieber das SPIBSY Flag benutzen.

von Sebastian R. (Firma: Hager Electro GmbH & Co. KG) (seprim)


Lesenswert?

Das NSS muss ja auch keinen INT setzen
Dieses Flag setzt der Controller selbst wenn er gesendet/empfangen hat

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.