AnsweredAssumed Answered

MC9S08DZ60 and CW6.22

Question asked by James Kime on Dec 15, 2009
Latest reply on Dec 15, 2009 by James Kime

I am having trouble getting a macro to work in my application and I am wondering if anyone knows a way to fix this with compiler settings.  This is part of trunk code that spans over several compilers so chaning the code would make things difficult.

 

Here is the macro:

 #define TimeOver(soll,ist) ((UINT16) ((ist) - (soll)) < 0x8000)

 

  And here is one instance of where it is used:

 

  if(TimeOver (FUTURE_TIME, CURRENT_Timer))
  {
    ...
  }

 

Basically, it is a timeout mechanism.  The problem is the condition always comes out true even when it is not.  I know this macro works on at least 5 or 6 other compilers, but I can't get it to work correctly in this case.

 

For debugging purposes, I added in a temp variable so I could see what was going on with the TimeOver macro and the system started working.

 

  temp =  TimeOver (FUTURE_TIME, CURRENT_Timer);

  if(temp)
  {
    ...
  } 

 

Does anyone have an idea of why this could be going on?  Thanks in advance.

Outcomes