8 Bit Adresse, 32 Bit Daten

Gast #3976338
Hallo zusammen,

ich würde gerne via SPI zuerst eine 8 Bit Adresse gefolgt von 24 Bit 
Daten mit Hilder der SPI_WRITE(unsigned char dat) Funktion senden. Wie 
macht man das am besten? So?:
1
unsigned char SPI_Write(unsigned char dat);
2

3
void WriteCycle(unsigned char address, unsigned int data)
4
{
5
        CS_0;
6
        // 8 Bit Adresse
7
  SPI_Write(address);
8
        SPI_Write(data);
9
        SPI_Write(data >> 8);
10
        SPI_Write(data >> 16);
11

12
        AD_CS_1;
13
}

Würde das so funktionieren?
Jetzt Nicht schrieb:
> Wenn das auf der anderen Seite passt, ja.
>
> Allenfalls muss man noch das niedristwertige byte ausschneiden,
> vielleicht macht das der Compiler von selbst

Macht er.
Wie sonst soll er einen unsigned char als Argument für
1
unsigned char SPI_Write(unsigned char dat);
zustande kriegen. Er könnte maximal eine Warnung generieren, da ja 
zwangsläufig Bits verloren gehen. In dem Fall kann man ihm mit einem 
Cast klar machen, dass das in Ordnung geht.
Mike schrieb:
> Auf welchem Controller soll denn das laufen bzw. mit welchem Compiler
> wird gearbeitet? Ist unsigned int 16 bit oder 32 bit?

Stimmt. WWenn man die 8-Bit Scheuklappen wegnimmt dann könnte
INT 32 Bit breit sein. Aber solche "Nebensächlichkeiten" wie
Prozessorhardware muss man ja dem Fragenden regelmässig
aus der Nase ziehen .....

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 11 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.