Hallo PIC Experten!

Im Moment bin ich dabei einen 74HC595 mit einem PIC18F2520 anzusteuern, genauer gesagt mit Hilfe des MSSP-Moduls. Ich möchte es im SPI Modus betreiben allerdings bekomme ich keinerlei Clock/Datensignal.

Leider kann mir hier die wirklich tolle Seite von Sprut auch nicht weiterhelfen, deshalb hier mal mein code:

Code:
void spi_init(void){

    SSPSTATbits.SMP = 0; // Input data sampled at middle of data output time
    SSPSTATbits.CKE = 0; // Transmit occurs on transition from Idle to active clock state

    SSPCON1bits.CKP = 0; // Idle state for clock is a low level

    SSPCON1bits.SSPM3 = 0; // F_SPI = F_OSC / 4
    SSPCON1bits.SSPM2 = 0;
    SSPCON1bits.SSPM1 = 0;
    SSPCON1bits.SSPM0 = 0;

    // enable MSSP
    SSPCON1bits.SSPEN = 1;

    // set SDO (RC5) to output
    TRISCbits.RC5 = 0;
    // set SCK (RC3) to output
    TRISCbits.RC3 = 0;
    // set SS (RA5) to input
    //TRISAbits.RA5 = 1;
}

void spi_send(unsigned char data){
    // wait until the previous byte has been transmitted
    while( PIR1bits.SSPIF == 0 );
    PIR1bits.SSPIF = 0; // reset SSPIF bit
    SSPBUF = data; // write the data byte to be transmitted to SSPBUF
}
Der Teil in der init, bei dem Bits auf low gesetzt werden ist nur testweise und macht keinen Unterschied zu der init ohne diese Sequenz.

Ich hoffe es gibt hier jemanden der einen möglicherweise simplen Fehler sieht