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 }
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
Ja ich benutze den ATmega 88. Ich steuere ein CP1020 an (Funkzelle), der benötigt 7 Bits als Adresse.
Vielen Dank- es hat sich erledigt. Im Datenblatt seht 7 Adressbits + 1 Bit read/write. Gruß Faller
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.