Salut,
Je fait du série parallèle avec un 74hc595 en SPI, le pb est que je n'arrive pas à écrire le dernier bit (b0) ;
si je met l'octet série à 00000001, en parallèle sur le 595 je n'est rien.
si je met 00000010, en // j'ai 00000001 !!
j'ai voulu trompé le pb en ajoutant un front sur la sortie Clock du pic, le pb change et c'est le bit 7 qui disparait !!! 10000001 serie ->00000001 en //
Si vous avez une idée... mon code :
void write_digital_outputs(void)
{
unsigned char i = 0;
//conf SPI
//SSPSTATbits.SMP = 1;
//SSPSTATbits.CKE = 1;
SSPSTAT = 0b11000000;
//SSPCON1bits.WCOL = 0;
//SSPCON1bits.SSPOV = 0;
//SSPCON1bits.SSPEN = 1;
//SSPCON1bits.CKP = 0;
//SSPCON1bits.SSPM3 = 0;
//SSPCON1bits.SSPM2 = 0;
//SSPCON1bits.SSPM1 = 0;
//SSPCON1bits.SSPM0 = 0;
SSPCON1 = 0b00100000;
do
{
SSPBUF = RX.USB.digital[i];
while(!PIR1bits.SSPIF); // attend la fin de l'émission
PIR1bits.SSPIF = 0; //RAZ balise
i++;
}
while (i<8);
Store_Ouputs = 1; //activation sortie parallele
Nop()
Store_Ouputs = 0;
}
THX
-----