81 SSPCON1bits.SSPOV = 0;
84 SSPSTATbits.SMP = 0x00;
87 SSPCON1bits.SSPEN = 0x01;
90 #ifdef SPI_MODULE_TYPE_2
91 void SPI2_open (
unsigned char device_type){
119 SSP2CON1bits.WCOL = 0;
120 SSP2CON1bits.SSPOV = 0;
123 SSP2STATbits.SMP = 0x00;
126 SSP2CON1bits.SSPEN = 0x01;
137 SSPCON1bits.SSPEN = 0x00;
140 #ifdef SPI_MODULE_TYPE_2
141 void SPI2_close (
void){
144 SSP2CON1bits.SSPEN = 0x00;
153 SSPCON1 &= 0b11111100;
157 #ifdef SPI_MODULE_TYPE_2
158 void SPI2_baudrate (
unsigned char baudrate){
160 SSP2CON1 &= 0b11111100;
170 SSPSTATbits.CKE = 0x00;
173 switch (communication_mode){
175 SSPSTATbits.CKE = 0x01;
176 SSPCON1bits.CKP = 0x00;
180 SSPSTATbits.CKE = 0x00;
181 SSPCON1bits.CKP = 0x00;
185 SSPSTATbits.CKE = 0x01;
186 SSPCON1bits.CKP = 0x01;
190 SSPSTATbits.CKE = 0x00;
191 SSPCON1bits.CKP = 0x01;
196 #ifdef SPI_MODULE_TYPE_2
197 void SPI2_mode (
unsigned char communication_mode){
199 SSP2STATbits.CKE = 0x00;
201 switch (communication_mode){
203 SSP2STATbits.CKE = 0x01;
204 SSP2CON1bits.CKP = 0x00;
208 SSP2STATbits.CKE = 0x00;
209 SSP2CON1bits.CKP = 0x00;
213 SSP2STATbits.CKE = 0x01;
214 SSP2CON1bits.CKP = 0x01;
218 SSP2STATbits.CKE = 0x00;
219 SSP2CON1bits.CKP = 0x01;
237 SSPCON1bits.WCOL = 0;
240 SSPBUF = byte_to_send;
243 if (SSPCON1bits.WCOL == 0x01){
254 #ifdef SPI_MODULE_TYPE_2
255 signed char SPI2_write_byte (
unsigned char byte_to_send){
264 SSP2CON1bits.WCOL = 0;
267 SSP2BUF = byte_to_send;
270 if (SSP2CON1bits.WCOL == 0x01){
275 while(!SPI2_is_TX_over());
304 #ifdef SPI_MODULE_TYPE_2
305 unsigned char SPI2_read_byte (
void){
317 while(!SPI2_is_TX_over());