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