Hi, I'm trying to output a signed int with printf() in crossworks so that I can get some feedback in the debug window. It's working, but it's not displaying negative numbers properly, it's giving the two's compliment instead, i.e. 65534 instead of -1.. Is there a format string switch that I can use to force it to be in signed mode? I looked on the net, and in the crossworks docs, and can't find anything. Maybe I'm totally missing something. Currently I'm just doing this: signed int x; (code) debug_printf("%d\n", x); This may apply to other compilers as well, as I assume that cross studio's printf format strings are pretty standard. Thanks for your help, -Micah
printf question
Started by ●November 5, 2005
Reply by ●November 7, 20052005-11-07
Hi Micah, > I'm trying to output a signed int with printf() in crossworks > so that I can get some feedback in the debug window. > > It's working, but it's not displaying negative numbers > properly, it's giving the two's compliment instead, i.e. > 65534 instead of -1.. This, I think, is a known problem. > Is there a format string switch that I can use to force it to > be in signed mode? I looked on the net, and in the crossworks > docs, and can't find anything. Maybe I'm totally missing something. > > Currently I'm just doing this: > signed int x; > (code) > debug_printf("%d\n", x); You could try: debug_printf("%ld\n", (long)x); > This may apply to other compilers as well, as I assume that > cross studio's printf format strings are pretty standard. They are, when they're run on the target--however, debug_printf is run on the host... -- Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk CrossWorks for MSP430, ARM, AVR and now MAXQ processors
Reply by ●November 9, 20052005-11-09
That did the trick. Thanks Paul.
On Monday 07 November 2005 4:44 pm, Paul Curtis wrote:
> Hi Micah,
>
> > I'm trying to output a signed int with printf() in crossworks
> > so that I can get some feedback in the debug window.
> >
> > It's working, but it's not displaying negative numbers
> > properly, it's giving the two's compliment instead, i.e.
> > 65534 instead of -1..
>
> This, I think, is a known problem.
>
> > Is there a format string switch that I can use to force it to
> > be in signed mode? I looked on the net, and in the crossworks
> > docs, and can't find anything. Maybe I'm totally missing
something.
> >
> > Currently I'm just doing this:
> > signed int x;
> > (code)
> > debug_printf("%d\n", x);
>
> You could try:
>
> debug_printf("%ld\n", (long)x);
>
> > This may apply to other compilers as well, as I assume that
> > cross studio's printf format strings are pretty standard.
>
> They are, when they're run on the target--however, debug_printf is run
> on the host...
>
> --
> Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
> CrossWorks for MSP430, ARM, AVR and now MAXQ processors
>
>
>
> .
>
>
> Yahoo! Groups Links
>
>
>