/*************************************************** * SPI Testing program * * ************************************************/ #include #include "EESD.h" #pragma DATA _CONFIG1H, _OSC_HS_1H //10 mhz #pragma DATA _CONFIG2H, _WDT_OFF_2H #pragma DATA _CONFIG4L, _LVP_OFF_4L #pragma DATA _CONFIG3H, _MCLRE_ON_3H #pragma CLOCK_FREQ 10000000 global unsigned short interruptevent; volatile bit mssp@PIR1.3; // interrupt flag MSSP, trans/recp complete void interrupt(void) { interruptevent = 1; mssp = 0; } void main(void) { LCD_init(); trisd = 0 ; // port d output unsigned short i; ///////////// // Initialize SPI interface //////////// // INTCON bits enable interrupts intcon.7 = 1; intcon.6 = 1; // PIE1.3 enables MSSP interrupts pie1.3 = 1; // IPR1.3 sets high priority inter //ipr1.3 = 1; // SSPCON1 control register for SPI mode sspcon1.5 = 1; sspcon1.4 = 1; sspcon1.3 = 0; sspcon1.2 = 0; sspcon1.1 = 1; sspcon1.0 = 0; // SSPSTAT status register for SPI mode sspstat.7 = 1; sspstat.6 = 1; /ASK ABOUT THESE TWO // trisc ? ask Schafer about I/O trisa = 1; trisc = 1; //////////////////////////////// i = 0; wait(500); sspbuf = 1; while(1) { if (interruptevent == 0) {} else if (interruptevent == 1) { LCD_dec(i); i++; interruptevent = 0; } } }