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

debug messages using ifdef

Hi,

there's one pin depending on his level (high or low), the programm should / or should not transmit all the rs232 debug messages (printf()) to the hyperterminal.

How is it possible to use some #ifdefs | or is it much better to use a global variable?

#ifdef DEBUG_MODE
//debug mode - transmit all msg to the hyperterminal

#else
//no debug messages

#endif


int main(void)
{
  if(AT91C_BASE_PIOA->PIO_PDSR & 0x10)
  {
     /* -> transmit rs232 debug messages */

  } else {

    /* do not transmit any debug messages */
  }

   printf("only tansmit the msg if DEBUG_INIT is true");

  while(1);
}

best regards
Tim

Parents
  • how it would be possible to get the same behaviour using #ifdefs

    It isn't, because it can't be the same behaviour. It's reasonably easy to have a compiler switch that turns debug output on or off, but impossible to have one react to run-time events.

    But then I have to use for every possible rs232 message an if clause determining the pin's state (or the global variable)?

    You want to write a function debug_printf() that does the check, then calls vfprintf() as needed.

    That will cost time and increase the code size...

    You don't say! Seriously, though: it's pointless to worry about time or space efficiency after you've started using printf().

Reply
  • how it would be possible to get the same behaviour using #ifdefs

    It isn't, because it can't be the same behaviour. It's reasonably easy to have a compiler switch that turns debug output on or off, but impossible to have one react to run-time events.

    But then I have to use for every possible rs232 message an if clause determining the pin's state (or the global variable)?

    You want to write a function debug_printf() that does the check, then calls vfprintf() as needed.

    That will cost time and increase the code size...

    You don't say! Seriously, though: it's pointless to worry about time or space efficiency after you've started using printf().

Children