Forum: Mikrocontroller und Digitale Elektronik SPI 11Bit an 8Bit (C8051) c code


von Matthias L. (Firma: Leica-Geosystems) (radelektroniker)


Lesenswert?

Mein Problem ist, dass ich von einem Sensor einen Wert im WORD Format, 
der 11 Bit gross ist erhalte. Mein uP kann jedoch nur 8 Bit entfangen.

Hat jemand eine Idee wie ich dass umgehen kann?
uP ist ein C8051F020
Sensor ist ein SCA-61TFA1H1G

Ich bin auf dem gebiet der Mirkokontroller, nicht so bewandert, und mit 
SPI kenn ich mich gar nicht aus. Ist dieser Code funktionstüchtig? (mit 
ausnahme des obrigen Problems)

initalisierung:
1
void SPI_Init()
2
{
3
  SPI0CN    = 0x03;   //Master Mode
4
  SPI0CKR   = 0xC7;   //clk=5kHz
5
  SPI0CFG   =  0x03;  //8Bit load
6
7
}

Code:
1
   bit SPIF= 0;  
2
   unsigned int RDAX=0x10;
3
   unsigned int wert;
4
   while(1)               
5
   {
6
   SPI0DAT=RDAX;       
7
   while(SPIF==1);
8
   SPIF = 0;    
9
   SPI0DAT=0x00;               
10
   while(SPIF==1);        
11
   SPIF = 0;            
12
   wert = SPI0DAT;          
13
   }

von R. B. (rabis)


Lesenswert?

Hmm, würde versuchen 2mal 8Bit zu empfangen ...
Nicht benötigte Bits (hier 5) sind dann sicher Null ...

Gruß
Rabis

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.