Ola à tous.
J'ai passé un moment à regardé les différents post de ce site, passé pas mal de temps sur l'excellent site de bigonoff. Rien a faire mon probleme persiste. je vous l'expose.
Je suis chargé de refaire une carte d'acquisition avec pic, rs232, xbee, can,i2C... tout qui va bien.
La carte existante possede un pic cms 18lf2580, je teste tout mes programmes dessus. Aucun soucis, tout marche.
j'ai donc créer un prototype en composants traversants avec tout les composants identique à l'autre carte, excepté un pic 18f2580.
J'ai testé mon proto, tout marche sauf le bus can.
apres de multiples essais sur la vraie carte, mon programme est valide est simplifié au maximum :Code:#include <p18f2580.h> void ConfigurationBusCAN(void); void EnvoieMessage(char); #pragma config OSC = HS #pragma config WDT = OFF #pragma config PWRT = ON #pragma config LVP = OFF //initialisation des ports I/O void init_ports(void) { PORTB=0x05; LATB = 0x05; TRISB = 0xCA; } //programme principale void main(void) { init_ports(); ConfigurationBusCAN(); EnvoieMessage(3); } void EnvoieMessage(char piece) { TXB0SIDL= 0x00; TXB0SIDH= 0x20; TXB0DLC= 0x01; TXB0D0=piece; TXB0CONbits.TXREQ = 1; while (TXB0CONbits.TXREQ==1){}; } void ConfigurationBusCAN(void) { CANCONbits.REQOP2= 1; //mise en mode configuration while (CANSTATbits.OPMODE2 != 1) {;} //verification mode configuration BRGCON1 = 0x00; BRGCON2 = 0xF8; BRGCON3 = 0x05; CIOCONbits.ENDRHI=1; TXB0CON = 0x03; //priorité élevée TXB1CON = 0x02; TXB2CON = 0x01; CANCONbits.REQOP2= 0; }
Je regarde en sortie de mon pic proto et je vois que la tram n'est pas correctemetn envoyé, je n'ai qu'un debut de trame, et apres on dirait que le pic ne parvient pas a envoyer et donc recommence, j'ai ainsi une suite de début de trame.
j'ai evidememnt regardé en sortie de mon pic de la vraie carte, et je visualise bien une VRAIE trame.
En utilisant le debug de mplab j'ai remarqué que le flag TXREQ ne revenait pas à 0 apres l'envoi, (donc l'envoi ne se fait pas), le programme bloque donc sur mon while attendant un 0.
Voila maintenant 4 jours que je bloque sur mon probleme, si vous pouviez m'aider....
merci bien.
cordialement.
--
ouhme
-----