Der folgende code funktioniert leider auch nicht zufriedenstellend, egal ob ich das SSPIF bit vor dem laden von SSPBUF oder nach dem setzen von SSPIF wieder lösche, die CS Leitung ist jetzt gut doppelt so lange low wie sie sein sollte.
Code:
void spi_send(unsigned char data){
LATCbits.LATC2 = 0; // set CS low
SSPBUF = data; // write the data byte to be transmitted to SSPBUF
while(!PIR1bits.SSPIF); // wait for SSPIF bit to be set
PIR1bits.SSPIF = 0; // reset SSPIF bit
LATCbits.LATC2 = 1; // set CS high
}
Lesezeichen