by Peter Schutz
void init_spi_communication ( void ) { TRISC4 = 1; //SPI Slave In TRISC5 = 0; //SPI Slave Out TRISC3 = 1; //SPI Slave CLK In TRISA5 = 1; //SPI SS Enabled In, used for other purpose then SPI SMP = 0; //SPI slave mode SSPEN = 1; //SPI port pins enabled SSPM0 = 0; //Slave Mode SS pin Disabled SSPM1 = 0; SSPM2 = 1; SSPM3 = 0; CKP = 1; //Clock idle is high CKE = 0; //Data on rising edge } void main ( void ) { hardware_init(); initialize (); init_spi_communication (); // Initialization of SPI SSPBUF = 0x00; // Clear SPI receive buffer SSPIE = 1; // Enable interrupt on SPI receiving PEIE = 1; // Enable peripherial interrupt(For SPI) ei(); // Global interrupt enable asm("sleep"); // Going to sleep while (1) ; }
Questions:
Comments:
Hi there!
It's my first time in PicList!I'm working now on PIC16F687 and I'm looking for some application examples to set up SPI slave mode. I found very helpful information, and I'll be happy to accept further tips about that! Great site! LucaB