The following line of code seems to be causing inexplicable results if((PulsePeriod != 0)) As it is, this "if" block is entered despite the variable "PulsePeriod" having been immediately previously set to 0. Removing the inner parentheses gives different results so I can only assume this is because of a stack overflow (I am assuming that the parenthesised items are pushed onto the stack and then popped off for the final evaluation). Is there anyway I can verify this? This is test code and the parentheses are there because a second comarison is being Logical Anded with this one in the actual code and has been remove to simplify things.
It would be helpful to see the code snippet in context, along with the actual declarations of the PulsePeriod variable, and a description of other places it might be used. It also would help to post the assembler listing generated from this source.