ich habe eine Funktion im Netz gefunden, leider aber ohne alles weitere: char Command(char befF,uns16 AdrH,uns16 AdrL,char befH ) { char a; SPI(0xFF); SPI(befF); SPI(AdrH.high8); SPI(AdrH.low8); SPI(AdrL.high8); SPI(AdrL.low8); SPI(befH); SPI(0xFF); return SPI(0xFF); } 1.die Deklarierung uns16 ist mir unbekannt, da es sich wie es aussieht um einen 8bit Wert handelt, würde ich int nehmen oder evtl unsigned char. 2. die Variable a ist für die Funktion eigentlich sinnlos oder? 3. wie wird hier AdrH in AdrH.high8 und .low8 umgewandelt? vielen Dank schon mal Fritz
Fritz schrieb: > 1.die Deklarierung uns16 ist mir unbekannt, da es sich wie es aussieht > um einen 8bit Wert handelt, würde ich int nehmen oder evtl unsigned > char. Irgendwie spricht die 16 schon für 8 Bit, da haste Recht. Ich würd mir bis jetzt mal den stdint-Header anschauen und ein uint16_t benutzen. > 2. die Variable a ist für die Funktion eigentlich sinnlos oder? Ja. > 3. wie wird hier AdrH in AdrH.high8 und .low8 umgewandelt? Wenn das C ist, dann muss uns16 ein Strukturtyp sein. low8 und high8 sind eine Struktur, über die ein 16-Bit-Typ (uint16_t) als Union gelegt wird.
oh sorry, meinte natürlich 16bit, die werden dann ja in 2 x 8 geteilt. Deshalb ist wohl ein unsigned int angebracht...
Nein, eine Struktur mit Union, sonst haut das mit low8 und high8 nicht hin...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.