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
Lesezeichen