Bonjour,
Je dois mettre en oeuvre une communication SPI entre deux PIC24FJ.
Le probleme, c'est que je n'arrive pas à obtenir le lancement de la communication.
J ai une LED sur RB7 qui ne s'allume pas malgré ma commande, et j'ai une tension sur RB7 qui n'est ni à 0, ni à 5V.
Je vous met donc le code, au cas ou vous auriez une idée du probleme?
Merci
#include <p24FJ64GA002.h>
#include <spi.h>
_CONFIG2(IESO_OFF & FNOSC_FRCPLL & OSCIOFNC_ON & POSCMOD_NONE) // Internal FRC OSC avec 4x PLL
_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF )
#define SPI_CS LATBbits.LATB12
void init2 (void);
int main (void)
{
init2 ();
SPI_CS = 0;
SPI1BUF = ( 1 );
SPI_CS = 1;
while (1);
return 0;
}
void init2 (void)
{
AD1PCFG = 0x0FFFF;
TRISA = 0;
TRISBbits.TRISB12 = 0; // RB12 est le chip select
TRISBbits.TRISB1 = 0; // RB1 EST SPI_CLK
TRISBbits.TRISB0 = 1; // RBO EST SDI
TRISBbits.TRISB2 = 0; // RB2 EST SDO
TRISBbits.TRISB7 = 0; // sortie pour la LED
LATBbits.LATB7 = 1; // Allumage de la led
SPI_CS = 1;
SPI2STAT = 0;
SPI2BUF = 0;
SPI2CON1 = 0x003F; // SPI2CON1.5 = 0;
SPI2CON2 = 0;
SPI2STAT = 0x8000;
// Inputs SPI
RPINR20bits.SDI1R = 0; //SDI1 = RP0 = RB0
// Outputs SPI
RPOR1bits.RP2R = 10; //RP2 = SDO1
RPOR0bits.RP1R = 8; //RP1 = SCK1
}
-----