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:
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.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 }
Ich hoffe es gibt hier jemanden der einen möglicherweise simplen Fehler sieht![]()







Zitieren

Lesezeichen