This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CAN module : changing data using single mailbox Error



Hi

i have gone through the Can eXAMP-LES . There they are sending data from different mailboxes but are not sending data from a single mailboxes changing the data each time .

 

In my program each time I need to update " Mode " value  for my SLAVe device to Change its display . Following master .

In timer interrupt of 2.5 ms

 

"  Mode "  variable  value is updated every 2.5ms

 ------   Updating  slave Device   --------------------------------------

    ECanaMboxes.MBOX25.MDL.byte.BYTE0 = mode      ;    
   

// Sendind data

    ECanaShadow.CANTRS.all = 0;
    ECanaShadow.CANTRS.bit.TRS25 = 1;
    ECanaRegs.CANTRS.all = ECanaShadow.CANTRS.all;
//------------------------------------------------------------------------------

    do
      {
     
        ECanaShadow.CANTA.all = ECanaRegs.CANTA.all;
          
      } while(ECanaShadow.CANTA.bit.TA25 == 0 );

      ECanaShadow.CANTA.all = 0;
       ECanaShadow.CANTA.bit.TA25 = 1;
       ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;

 

____________________________________________________________

 

The problem is the changed value is getting updated only once in the mail box .In the sense  MDL  register Freezes after this updatiuon at the starting ..