Supongamos que tengo tres nodos: a, B y C. se sabe que cuando dos nodos de transmitir al mismo tiempo, el nodo que tiene el menor SID prevalecerá sobre el autobús y el otro nodo tendrá que dar el autobús para el primer nodo. Lo que yo quiero hacer es que el nodo B y C envían continuamente PUEDE enmarcar a Un nodo de la sucesión (por ejemplo, el nodo B -> nodo, el nodo C -> nodo, el nodo B -> nodo). ¿Sólo se puede asignar una menor SID a B de C y acaba de hacer el siguiente fragmento de código?
El Nodo B
while(1) sendCANmsg(data, NODE_A, sizeof(data), RTR_OFF);
El Nodo C
while(1) sendCANmsg(data, NODE_A, sizeof(data), RTR_OFF);
Dentro de la sendCANmsg, aquí está el fragmento de código:
TXB0CONbits.TXREQ = 1; // Request Message Transmission
while (TXB0CONbits.TXREQ); // Wait until message is sent.
Por cierto, estoy usando PIC18F25k80 en la aplicación de esta. Sólo estaba pensando que después de que el nodo B envía el mensaje, cuando el nodo C es aproximadamente de enviar su mensaje. El nodo B volverá a ganar el autobús de arbitraje dando así el nodo C no hay posibilidad de transmisión. Así que el remedio que sólo puedo pensar es la inserción de un pequeño retraso, como:
while(1) {
sendCANmsg(data, NODE_A, sizeof(data), RTR_OFF);
delay_us(10);
}
O estoy equivocado? :)