I am using puthcar( ) function to send a series of bytes serially thru UART. My problem is that i cannot see the output through serial window of simulator . its printing just some junk values. when i am doing the same with printf(). I am getting response which could be observed from serial window.Can any one tell me why this is happening. Nitin
The two calls you describe do completely different things - so the fact that the first gives readable output and the second doesn't is absolutely and totally irrelevant! Both calls are working correctly - it is your expectation that is faulty! The first one takes the numerical value of send_buf[i], formats it into printable text representing its hexadecimal value, then prints the text (using a number of putchar calls); eg, if the value is 0xA5, it will print "A5" The second simply takes send_buf[i] and sends it straight to the UART - so if send_buf[i] is not a printable ASCII code (eg, 0xA5) you will get junk.
"eg, if the value is 0xA5, it will print 'A5'" To be precise, since you specified the format string "[%x]", it will actually print "[a5]" "Whats the reason and how can it be corrected" You need to review your 'C' course notes/textbook/whatever and understand the difference between formatted output using printf, and direct output using putchar.
thank you Andy for clearing my misconception Nitin