Gast
#1773217
Hallo Leute,
ich möchte ein digitales Signal über ein digitales Poti in ein analoges
Signal umwandeln. Die Übertragung soll über das SPI Interface erfolgen.
Die SPI sieht bei mir wie folgt aus:
//Initialisierung SPI Schnittstelle
void spi_init(void)
{
DDRB|= (1<<PB4)|(1<<PB5)|(1<<PB7); //Ausgänge
DDRB &=~(1<<PB6); //Eingang
SPCR|=(1<<SPE)|(1<<MSTR)|(0<<DORD)|(1<<SPR0)|(1<<CPOL)|(1<<CPHA);
//Setup
}
und die Ausgabe sieht wie folgt aus:
.
.
.
daten = Ausgabewert;
//Im folgenden werden die Daten mit einem Startbit und einer 2bit
langen Adresse versehen und auf 2 Byte aufgeteilt um sie dann zum D/A
Wandler zu senden
daten1 = ((daten*8)+7);
daten2 = daten;
daten2>>= 5;
PORTB |= (1<<PB0); // RST auf 1 um read/write am D/A Wandler
freizugeben
SPDR = daten1; //Byte 1 wird gesendet
while(!(SPSR & (1<<SPIF))); //warten bis die Übertragung beendet
ist
SPDR = daten2; //Byte 2 wird gesendet
while(!(SPSR & (1<<SPIF))); //warten bis die Übertragung beendet
ist
PORTB |= (0<<PB0); // RST auf 0 um read/write am D/A Wandler zu
sperren
}
leider kriege ich am Ausgang nicht das zu erwartende Signal. Weiss
eventuell jemand was daran falsch sein kann??