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

0