Why this shift doesn't run?

Hi,

I've the following question about this code fragment:

...
char  BuffRX
xdata UCHAR BuffRX[10];
idata unsigned short ValCRCcomp;
idata unsigned short ValCRCappo;
idata unsigned short ValCRCappo2;

BuffRX[1] = 0x11;
BufRX[2] = 0x2A;
...
ValCRCappo = (unsigned short) (BuffRX[1] << 8);
ValCRCappo2 = (unsigned short) (BuffRX[2] | 0x0000);
ValCRCcomp = (unsigned short)  (ValCRCappo | ValCRCappo2);
...


Even the values in BuffRX[1] and BuffRX[2] are differents from zero, ValCRCcomp is always zero!

Any hints?

Thanks

Parents
  • Hi,

    sorry guys, the code posted previously contains some error, this is the right version:

    xdata UCHAR BuffRX[10];
    idata unsigned short ValCRCcomp;
    idata unsigned short ValCRCappo;
    idata unsigned short ValCRCappo2;
    
    BuffRX[1] = 0x11;
    BuffRX[2] = 0x2A;
    ...
    ValCRCappo = (unsigned short) (BuffRX[1] << 8);
    ValCRCappo2 = (unsigned short) (BuffRX[2] | 0x0000);
    ValCRCcomp = (unsigned short)  (ValCRCappo | ValCRCappo2);
    

Reply
  • Hi,

    sorry guys, the code posted previously contains some error, this is the right version:

    xdata UCHAR BuffRX[10];
    idata unsigned short ValCRCcomp;
    idata unsigned short ValCRCappo;
    idata unsigned short ValCRCappo2;
    
    BuffRX[1] = 0x11;
    BuffRX[2] = 0x2A;
    ...
    ValCRCappo = (unsigned short) (BuffRX[1] << 8);
    ValCRCappo2 = (unsigned short) (BuffRX[2] | 0x0000);
    ValCRCcomp = (unsigned short)  (ValCRCappo | ValCRCappo2);
    

Children
More questions in this forum