XC8 SPI Örneği (12F1822)

Başlatan baran123, 06 Temmuz 2015, 17:53:43

baran123

Bu mini PIC bayağı hoşuma gitti.Bir SPI çalıştırayım dedim.OLED denedim çalışıyor. SPI ayarları ve veri gönderme lazım olur diye düşündüm.
Not : MISO yu daha tam olarak çözemedim bitince buraya eklerim.

#define SPI_MOSI   PORTAbits.RA0
#define SPI_MISO   PORTAbits.RA2
#define SPI_SCLK   PORTAbits.RA1
//#define SPI_CS   PORTAbits.RA4

#define TRIS_MOSI   TRISAbits.TRISA0
#define TRIS_MISO   TRISAbits.TRISA2
#define TRIS_SCLK   TRISAbits.TRISA1
//#define TRIS_CS   TRISAbits.TRISA4

void SPI_Init(void)
{
    SSP1STAT = 0b00000000;
    SSP1STATbits.CKE = 1; 
    SSP1CON1 = 0b00000000;
    SSP1CON1bits.CKP = 0;
    SSP1CON3 = 0;
    SSP1ADD = 0;
    
    TRIS_MOSI=0;
    TRIS_MISO=1;
    TRIS_SCLK=0;
    //TRIS_CS = 0;
    SSP1CON1bits.SSPEN = 1; 
}

void SPI_SendData(char data)
{
    //SPI_CS = 0;
    SSP1BUF = data;
    while( !SSP1STATbits.BF );
    SSP1STATbits.BF = 0; 
    //SPI_CS = 1;
}