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

Trouble with reading SBUF1

HI everyone!

I am workinf with Silabs 8051F020, and I need to use the uart1 shift register mode (mode 0).
Everything seems to work fine, except that when I try to read the SBUF1 register and load it to a software buffer,
i don't get anything.
I am debugging on software, and loading myself the sbuf1 reg with a byte (0x51), and when i set the interrupt flag, it recognises a reception, but when it gets to the point

buffer = SBUF1;

i get 0x00 on buffer.
i also checked that SBUF1 is loaded by posing the mouse over it's name
Any ideas will be appreciated

Thanks

Parents
  • nonono that is not what i am trying to do.
    I need to communicate with a Real Time Clock, using the shift register mode, due to the need of the RTC to synchronise with the 8051.
    But right now, i am simulating the communication on the PC.
    I write to SBUF when I need to send any commands or data to the RTC, and the simulator works perfectly, automatically interrupting after 8 machine cycles.
    The transmission works.
    Now, when I try to read data from the serial port, I write with the debug tool, something on SBUF, anything, and i set the interrupt flag as if I had actually received something.
    The program moves to the ISR, and when it gets to the point that it actually reads the SBUF1, the variable that I am writing stays null, even though when I check the value contained on the register, it is the value I wrote with the debugger.
    Maybe I can not do that, write the register manually, but i remember the professor simulating serial com with PC and using this tool

Reply
  • nonono that is not what i am trying to do.
    I need to communicate with a Real Time Clock, using the shift register mode, due to the need of the RTC to synchronise with the 8051.
    But right now, i am simulating the communication on the PC.
    I write to SBUF when I need to send any commands or data to the RTC, and the simulator works perfectly, automatically interrupting after 8 machine cycles.
    The transmission works.
    Now, when I try to read data from the serial port, I write with the debug tool, something on SBUF, anything, and i set the interrupt flag as if I had actually received something.
    The program moves to the ISR, and when it gets to the point that it actually reads the SBUF1, the variable that I am writing stays null, even though when I check the value contained on the register, it is the value I wrote with the debugger.
    Maybe I can not do that, write the register manually, but i remember the professor simulating serial com with PC and using this tool

Children