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);



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