Nur 6bits mit SPI übertragen

OP #1031453
Lesenswert?

Hallo,

ich habe diese Funktion, die mir auf einem Atmega128 8 Bits (also 1 
Byte) über die Hardware-SPI einwandfrei überträgt.
1
void SPI_MasterTransmit(uint8_t data) { 
2
  /* Start transmission */ 
3
  SPDR = data; 
4
  /* Wait for transmission complete */ 
5
  while (!(SPSR & (1<<SPIF))) {} 
6
}

Nun will ich aber nur 6 Bits übertragen und weiß nicht, wie ich es 
machen soll. Könnte mir bitte jemand helfen, stehe etwas auf dem 
Schlauch...

Danke
Gast #1031502
Lesenswert?

>Nun will ich aber nur 6 Bits übertragen und weiß nicht, wie ich es
>machen soll. Könnte mir bitte jemand helfen, stehe etwas auf dem
>Schlauch...


Warum? Sorge einfach dafür, dass deine 6Bits die letzten sechs sind, die 
rausgeschoben werden. Und fertig.
#1031724
Lesenswert?

Hallo,

wenn ich solche SPI-Geschichten in Angriff nehme, ist mein erster Blick 
im Datenblatt immer, ob Vielfache von 8 irgendwie möglich sind.
Nur wenn da kein Weg geht (einige alte Radio-PLL-ICs z.B.) wird "zu Fuß" 
geschoben.

Allerdings kostet auch Software-SPI nur sehr wenig Programmieraufwand.

Gruß aus Berlin
Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren