bonjour
j'ai besoin de votre aide j'utilise le module usart de pic16f876a en réception avec interruption et l'émission sans interruption, pour la réception je reçois bien les trames envoyé par PC j'ai seulement le probleme avec l'émission le PC ne reçoit que le premier octet (0x44) et les autres octets me les remplacer par (0x44,0xa6,0xf5)
merci d'avance pour votre aide
Code:/****************************************************************************** * * * * * * * * ******************************************************************************/ #include <htc.h> #define _XTAL_FREQ 4000000 __CONFIG (XT & WDTDIS & PWRTEN & BORDIS & WRTEN & LVPDIS & DUNPROT & DEBUGDIS); unsigned char PR = 0; void Init_port(void); void Emet_Car(unsigned char caractere); unsigned char inBuffer[32]; /****************************************************************************** * * * * * * ******************************************************************************/ int main(void) { int i; int LOOP = 1; Init_port(); while(LOOP) { for(i = 0;i < 4;i ++) { __delay_ms(100); PORTB = inBuffer[i]; __delay_ms(100); } PR = 0; Emet_Car(0x44); Emet_Car(0x33); Emet_Car(0x55); } return 0; } /****************************************************************************** * * * * * * ******************************************************************************/ void Init_port(void) { TRISC = 0b10000000; TRISB = 0x00; PORTB = 0x00; SPBRG = 25; TXSTA = 0b00100110; RCSTA = 0b10010000; RCIE = 1; PEIE = 1; GIE = 1; } /****************************************************************************** * * * * * * ******************************************************************************/ void Emet_Car(unsigned char caractere) { while(!TRMT) continue; TXREG = caractere; } /****************************************************************************** * * * * * * ******************************************************************************/ static void interrupt isr(void) { if(RCIF) { inBuffer[PR++] = RCREG; RCIF = 0; } }
-----