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

Weird behaviour of 'printf' with unsigned char

I wrote a small program to test the behaviour of 'printf' with unsigned char. It contained just the following loop:
for (i=0; i<10; i++)
{
printf("i = %d\n", i);
}
Now when I watch the serial I/O window
it gives me the following values:
0
256
512
768
1024
1280
and so on...

I'm not worried about the value of 'i' because it seems to be OK when I set up a watch on it. Apparently its something to do with the way the char value is sent to the emulated serial port. I can
observe the following behaviour:
0 = 00000000 00000000 --> to serial port
256=00000001 00000000 --> to serial port
512=00000010 00000000 --> to serial port

now what I can't understand is why is the all zero byte being sent to the serial port first.
Please enlighten me on this.

Regards,
Vipin Mehta

Parents Reply Children
  • Sorry, didn't mean to yell.

    Tools/Internet Options/Languages says "Menus and dialog boxes are currently displayed in English (United States)"

    Under Fonts, script is set to "Latin based" with Web Font= Times New Roman and Plain Text Font= Courier New

  • Hey both Mark and Andy,
    You guys are so funny.
    What do you see '%'?
    Some times I see a percent sign and sometimes I see 96. I think our eyes some times make us look silly...:)

    --Zhi

  • I think I've rumbled it:

    The nice man at Keil has pointed out to me (off-list) that the "96" really is a percent '%' - it's just that the font used by the board has a particularly bad rendition of the '%' character which looks just like "96"

    However, in the message composition window, it uses a different font - which has a decent percent character:

    '%'

    The secret is to always enclose your code segments within &ltpre&gt and &lt/pre&gt HTML Tags.
    (which also gives a pale background tint on my system).
    See "Tips for Posting Messages"
    http://www.keil.com/forum/tips.asp

    Check formatting using the 'Preview' button before posting.