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
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.
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

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.