This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Pointer to Structure with pointer.

I'm having a problem with a pointer to struct. I'm working with the PC16552 UART, (it has 2 UARTs), and I created a struct for each UART like this:

typedef struct _uart
{
 uchar xdata *ucBuffer;
 uchar xdata *ucLineCt;
 uchar xdata *ucLineSt;
} uart;
Each uart is conected to a different external interrupt, and when that interrupt is generated, it calls a function getByte that have a pointer to a uart struct as parameter:
void int0(void) interrupt 0
{
 ...
 getByte(&Serial1);
 ...
}

void int1(void) interrupt 1
{
 ...
 getByte(&Serial2);
 ...
}

void getByte(uart *actualSerial) reentrant
{
 unsigned char ucByte;

 ucByte = *actualSerial->ucBuffer;
 ...
}
It works fine, but sometimes, I receive a wrong character. I was thinking that could be hardware, but I decided to make a dump of the block, and the dump solved the problem. I'm asking help, because I don't know what is it, if it's hardware or firmware... The problem occurs when I receive a 0xFF from the serial 2... Sometimes, it turns in 0xF7 or 0xF3. In the dump, I simply do this:
 if(actualSerial == &Serial2)
 {
  if(i < 20)
  Dump[i++] = ucByte;
 }

0