Здравствуйте.
Пытаюсь связать два PIC16F877 через SPI, один в режиме Master, второй-slave. На PORTD Master'a и Slave'a получается 00001111, хотя на Slave должно быть 11111111.
Master:
#include <pic.h>
__CONFIG(0x3FF1);
int res; main(void) { TRISA=0b00000000; TRISC=0b00010000; TRISB=0x0; TRISD=0x0;
PORTD=0x0; PORTB=0x0; PORTC=0x0;
SSPIE=0; SSPCON=0x20; SSPIF=0; SSPBUF=0b11111111;
while(!SSPIF); PORTD=SSPBUF; }
Slave:
#include <pic.h>
__CONFIG(0x3FF1);
int res,i;
main(void) { TRISA=0b00000000; TRISC=0b00001000; TRISB=0x0; TRISD=0x0;
PORTD=0x0; PORTB=0x0; PORTC=0x0; SSPCON=0x25; SSPIF=0; SSPIE=1; PEIE=1; GIE=1;
}
interrupt IntSer(void) {
if(SSPIF==1) { res=SSPBUF; SSPBUF=0b00001111; SSPIF=0; } show(); }
show() { PORTD=res; for(i=0;i<=1000;i++); }
|