FDA (16.12.2010 15:14, просмотров: 246) ответил Двоешник на Настройка аппаратного SPI для PIC18.
Вот пример моего SPI: #define MSSP_DELAY() { while (!SSPIF) CLRWDT(); SSPIF = 0; }
#define PutSPI(b) { SSPBUF = (b); MSSP_DELAY(); }
//------------------------------
void InitSPI (char mode, char speed)
{
TRISC3 = 0;
TRISC4 = 1;
TRISC5 = 0;
switch (mode)
{
case spiMode0 : CKP = 0; CKE = 1; break;
case spiMode1 : CKP = 0; CKE = 0; break;
case spiMode2 : CKP = 1; CKE = 1; break;
case spiMode3 : CKP = 1; CKE = 0; break;
}
SMP = 0;
SSPCON1 = (SSPCON1 & 0xF0) & speed;
SSPEN = 1;
CS = 1;
}
//------------------------------
char GetSPI (void)
{
SSPBUF = 0xFF;
MSSP_DELAY();
return SSPBUF;
}