Forum: Mikrocontroller und Digitale Elektronik 7 Bit über SPI übertragen


von Faller (Gast)


Lesenswert?

Ich bin Anfänger und habe folgendes Problem: Ich möchte gerne nur 7 Bit 
als Adresse über die SPI - Schnittstelle übertragen.
Mit folgender Funktion übertrage ich aber 8 Bit. Was muss ich ändern?

ich habe folgende  Routine:

void master_transmit (unsigned Adresse, unsigned data1) {

    PORTB &= ~_BV(PB2);    //SS am S  Slave Low --> Beginn der 
Übertragung
    SPDR = Adresse;     //Schreiben der Adresse
    while (!(SPSR & (1<<SPIF)));
    SPDR = data1;             //Schreiben der Daten
    while (!(SPSR & (1<<SPIF)));
     PORTB |= _BV(PB2);           //SS High --> Ende der Übertragung
}

von Daniel W. (danie)


Lesenswert?

hmmm,
ich gehe mal davon aus dass du einen avr nutzt ?:
so weit ich weiss geht das mit dem hardware-spi nicht.
(aber das heisst nicht viel, denn auch ich lerne nie aus)
ich würd mir da schnell was per software schreiben das die adresse 
raustackert und dann mit der hardware die schnellen transfers machen.

was ist denn das für ein ic das ne 7bit spi-sequenz nutzt?

grüße danie

von Faller (Gast)


Lesenswert?

Ja ich benutze den ATmega 88. Ich steuere ein CP1020 an (Funkzelle), der 
benötigt 7 Bits als Adresse.

von Faller (Gast)


Lesenswert?

Vielen Dank-

es hat sich erledigt. Im Datenblatt seht 7 Adressbits + 1 Bit 
read/write.

Gruß Faller

von Daniel W. (danie)


Lesenswert?

ok,
das macht dann schon mehr sinn.
viel erfolg noch bei deinem projekt.

grüße danie

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.