#pragma config FOSC = INTIO67, FCMEN = OFF, IESO = OFF // CONFIG1H
#pragma config PWRT = OFF, BOREN = OFF, BORV = 30 // CONFIG2L
#pragma config WDTEN = OFF, WDTPS = 32768 // CONFIG2H
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = ON, CCP2MX = PORTC // CONFIG3H
#pragma config STVREN = ON, LVP = OFF, XINST = OFF // CONFIG4L
#pragma config CP0 = OFF, CP1 = OFF, CP2 = OFF, CP3 = OFF // CONFIG5L
#pragma config CPB = OFF, CPD = OFF // CONFIG5H
#pragma config WRT0 = OFF, WRT1 = OFF, WRT2 = OFF, WRT3 = OFF // CONFIG6L
#pragma config WRTB = OFF, WRTC = OFF, WRTD = OFF // CONFIG6H
#pragma config EBTR0 = OFF, EBTR1 = OFF, EBTR2 = OFF, EBTR3 = OFF // CONFIG7L
#pragma config EBTRB = OFF // CONFIG7H
#include <p18f45k20.h>
#include <delays.h>
#define SS PORTAbits.RA5
void init_pic(void);
void init_spi(void);
void main(void)
{
init_pic();
init_spi();
while(1)
{
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x20; // sends byte to buffer
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x21;
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x22;
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x23;
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x24;
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x25;
Delay1KTCYx(2000);
Delay1KTCYx(2000);
SSPBUF=0x26;
}
}
void init_pic(void)
{
TRISA=0b00000000;
TRISB=0b00000000;
TRISC=0b00010000;
ADCON1=0xFF; // Turns off A/D
}
void init_spi(void)
{
SSPSTAT=0b01000000; // Sets CKE bit to 1. This will set SPI mode to 1:1 with CKP pin in SSPCON1
SSPCON1=0b00110000; // Sets SSPEN pin to 1 and CKE pin to 1
}