Hi,
ich benutze zwei PIC18F4550 zur Kommunikation via SPI. Der Master kann
Daten an den Slave senden, was aber zurueckkommt ist nicht so gewollt.
Ich will dass der Slave den Empfang mit z.B. 0x99 bestaetig, das klappt
aber nicht, es wird immer irgendwas empfangen.
Master:
1 | CS = 0; // Begin
|
2 | SSPBUF = 0x33;
|
3 | while (!SSPSTATbits.BF); // Wait until receive buffer full
|
4 | receive = SSPBUF; // Copy data to variable
|
5 | CS = 1; // End
|
Slave:
1 | while (1)
|
2 | {
|
3 | if(SSPSTATbits.BF) //
|
4 | {
|
5 | receive = SSPBUF; /a
|
6 | SSPBUF = dummy; // Send ok back (0x99)
|
7 |
|
8 | }
|
9 | if (SSPCON1bits.WCOL)
|
10 | {
|
11 | SSPCON1bits.WCOL = 0;
|
12 | }
|
13 | if (SSPCON1bits.SSPOV)
|
14 | {
|
15 | SSPCON1bits.SSPOV = 0;
|
16 | }
|
17 | }
|